【Rails】redirect_toとrenderの違いについて
おはようございます☀
今日は、redirect_toとrenderの違いについてまとめていこうと思います。
redirect_toとrenderの違い
・render : controller → view
・redirect_to : controller → URL → route → controller → view
renderはいきなりviewに飛ぶのに対し、
redirect_toの方が寄り道が多いことがわかると思います。
renderは、
アクションを実行せずにビューファイルを表示させるのに対し、
redirect_toは、
1回指定したアクションを実行してそのアクションに対応したビューを表示させます。
redirect_toとは
redirect_toは、
指定したURLに遷移させることができるメソッドです。
redirect_to
メソッドを使うと、決められたコントローラーのアクション以外のアクションなどを実行させ、選択したビューファイルを表示させることができます。
redirect_toメソッドのリダイレクト先の指定
パターン1:URLで指定する
redirect_to "https://www.pokemon.co.jp/"
パターン2:アクションで指定
redirect_to action: :new
パターン3:指定したコントローラのアクションで指定
redirect_to controller: :users, action: :show
パターン4:アクションの個別のリソースを指定
redirect_to controller: :users, action: :show, id: 1
パターン5:前のページを指定
redirect_to :back
などがあります。
その他にもステータスコードを指定してリダイレクトをさせることも可能です。
renderとは
renderは、
Action内で、呼び出すViewを指定するメソッドです。
Action内でインスタンス変数として格納されたものは、viewから呼び出せます。
使い分け
データを追加、更新、削除を行う時 →「redirect_to」
データの取得を行う時 →「render」
controllerの処理が必要だー!といったものに対しては、
redirect_toを使い、
失敗したらエラー表示させるだけでよいよーといったものに対しては、
renderを使うといった感じです。
参考
【Rails】renderとredirect_toの違いと使い分け - Qiita
【Rails】redirect_toとrenderの使い分け - Qiita
renderとredirect_toの違いを整理 【Day 1/30 2nd】|K.Tawara|note
【Rails】redirect_toの使い方を徹底解説! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト