とまとの成長日記

ぴよぴよエンジニアの日々学んだとこを投稿。時々、ゆるーくすきなもの・趣味について語ってます。

renderとredirect_toの違い

今日は割と頭がさえているのでいつもより多少ましな説明ができそうと意気込んでおります💪
私は、毎回のようにrenderとredirect_toを間違えるので
アウトプットしつつ整理していきたいと思います!
基礎中の基礎なのに未だに理解が浅いので間違い等あればご指摘お願いいたします。
※間違いがあるため修正(2019/07/17)

renderとは

よく"レンダーする"とエンジニアの方々はおっしゃっております。
一覧画面や新規登録画面を表示する場合に使われる。

例えば
トップページからユーザーの一覧画面を表示する時
f:id:toomeeto:20190706024933j:plain



コントローラーからビューに行くのがすっとなんの障壁もなしにいってますよね!
これが render になります。

redirect_to

よく"リダイレクトする"とエンジニアの方々はおっしゃっております。
何かの登録とかの処理をしたあとに、一覧画面に遷移する場合に使われる。

例えば、ユーザー登録画面からユーザー登録後とユーザー一覧画面に戻る時
f:id:toomeeto:20190706191615j:plain

コントローラーからビューに行く時に
もう一回コントローラーを通っているのが redirect_to になります!

一度、保存の処理が終わったあと、
ridirect_to でusers#indexアクションに飛ぶように指示されいるので
コントローラーに行きます!
その後、はじめて、index.html.erbを使ってHTMLが生成されて、
ブラウザの画面が出ます!

うーん、遠回りですね!笑



盛大に間違えてたので修正しました!笑
下は無視してください!!
コントローラーからビューに行く時にDatabaseに寄り道してますよね!
これは、データベースで一度ユーザー情報の保存処理をしています。
その後、redirect_to でビューに戻っています!
これが rediret_to になります。

注意してほしいのがDatabaseへの寄り道もredirect_to でビューに戻るもコードを書いている場所は、コントローラーです!
間違っても、モデルとかに書かないでください!笑

問題

ユーザーの編集画面からユーザー情報編集後、ユーザー一覧に移行する場合、
これは、render でしょうか? redirect_to でしょうか?


正解は。。。
redirect_to です!!

一度Detabaseに編集後のユーザー情報の保存処理をしに行くので redirect_toを使います!


はい、今日はこんな感じでおわり〜。
図まで使って張り切って頑張ってみました!!
これで間違ってたらさすがに恥ずかしい!笑
でも、ご指摘お待ちしております!笑

ちなみにこの図を作ったツールは参考に貼っておきます!
フローチャート作ったり、こういうのも簡単にできて、しかも無料!!便利な世の中じゃ。
もっといいツールあるよ~とご存知の方教えていただける嬉しいです!!

www.draw.io

感想

今日は図をdraw.ioで頑張ってみました😤!ドヤ
普通の人なら30分足らずで書き上げるのをあーでもないこーでもないして、2時間以上かかりました🤣🤣
ほんと、自分の言葉でしかも図に落とし込む難しさを感じました。
いつも、教えていただけるメンターの方には頭が上がりません。
そして、教えていただける環境に感謝しつつ就寝💤
皆さん、雨模様ですが、良い週末になりますように😊✨