LoginSignup
2
1

More than 5 years have passed since last update.

renderとredirect_toの違いについて

Posted at

はじめに

アプリ開発中に、この違いが理解出来ておらず、はまってしまったのでしっくり来たものを参考にまとめてみた。

render

コントローラーのアクションを実行した結果、何らかのviewが決定され、レンダリングされる。
viewは以下の2通りで決まる。
- アクションで指定しない場合、規約に従ってリソース名やアクション名を元に表示するviewが決まる。
- renderで明示的に指定すると、指定したviewが表示される。

イメージ図
image.png

redirect_to

redirect_toは、viewの表示には直接は関係なく、新たなHTTPリクエストが発行される。(下図の4番※GETのみ)新たなリクエストが発行された後は下図の5番以降でrenderの図の2番以降と同じ。つまり表示自体はこちらも最終はrender

イメージ図
image.png

個人的に重要だと思うpoint

  • renderだとviewにいくので、インスタンス変数を定義し直せない点。
  • redirect_toを使った場合は再度リクエストを送るので、コントローラを経由する。つまりインスタンス変数を再度定義し直せる点。

参考

render と redirect の違い
https://qiita.com/january108/items/54143581ab1f03deefa1

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1