IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

Rails のコントローラで render メソッドを使ってみる

はじめに

ざっくりと雛形となるアプリを作成してみる。

  • rails new render_sample
  • cd render_sample
  • bin/rails g model Task name:string
  • bin/rails db:migrate
  • bin/rails g controller tasks show

 

使ってみる

show アクションで render メソッドを使ってみる。

f:id:matt-note:20190208163523p:plain

f:id:matt-note:20190208163533p:plain

-> render メソッドが呼び出されて、show.html.slim のレンダリングが実行された。

 

render メソッドをコメントアウトしてみる。

f:id:matt-note:20190208163608p:plain

f:id:matt-note:20190208163648p:plain

-> 最終的に show.html.slim のレンダリングが実行された。明示的に render メソッドを呼び出さない場合は、暗黙的に render メソッドを実行していることがわかった。

 

つまり、コントローラの動作は以下のようになっている。

f:id:matt-note:20190208142720p:plain

 

まとめ

コントローラのアクションは、render メソッドを暗黙的に実行してビューをレンダリングしている。

 

その他

パーシャルで render メソッドを使ってみると、以下のようになる。

f:id:matt-note:20190208165632p:plain

f:id:matt-note:20190208165644p:plain

f:id:matt-note:20190208165654p:plain

-> new.html.slim のレンダリングを実行して、_form.html.slim のレンダリングに処理が移り、new.html.slim に処理が戻るという流れになっている。