Quelle est la différence entre redirect_to et render? Comment utiliser? Ceux qui savent mais ne peuvent pas s'organiser dans leur esprit
L'action dans le contrôleur Rails est finalement rendue et renvoie une vue. En d'autres termes, 1 rendu ** se produit toujours pour chaque ** action.
def index
end
C'est la même chose que l'activation du rendu "index".
Lorsque le rendu est traité deux fois
def show
~~
if ~~
~~
render 'index'
end
render 'show'
end
La solution est de donner un retour
def show
~~
if ~~
~~
render 'index'
return
end
render 'show'
end
render Une méthode qui spécifie la vue à appeler dans l'action. Autrement dit, ** vous pouvez appeler autre chose que la vue appelée par défaut. ** ** Le format de la vue à appeler est le format RHTML (.html / html.erb, etc.)
--Lors de l'appel d'une autre vue d'action sur le même contrôleur
microposts_controller.rb
def index
render 'edit'
render :edit
end
microposts_controller.rb
def index
render "users/show"
render template: "users/show"
end
microposts_controller.rb
def index
render "/warehouse_app/app/views/products/show"
render file: "/warehouse_app/app/views/products/show"
end
redirect_to Une méthode qui envoie une requête GET à l'URL spécifiée. En d'autres termes, s'il est activé dans une action, ** appellera à nouveau RCV. ** **
microposts_controller.rb
def index
redirect_to root_url
end
microposts_controller.rb
def index
redirect_back(fallback_location: root_path)
end
Directives relatives aux rails https://railsguides.jp/layouts_and_rendering.html#render%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B
@ 1ulce https://qiita.com/1ulce/items/282cccba1e44158489c8
@ morikuma709 https://qiita.com/morikuma709/items/e9146465df2d8a094d78
Recommended Posts