ゲラウト!

困難に立ち向かい、ただひたすらに遊べ!

テンプレート呼び出しでモデルを渡すときに省略する

ruby on rails 3

勉強中、以下のような表記の場合に、どのテンプレートを指すことになるのか、さっぱりわからなかった。

<%= render @person %>

これ、テンプレートにモデル@personをパラメタ渡しすると、
自動で、部分テンプレート/views/persons/_person.html.erbを描画することになるらしい。
つまりは、 viewsフォルダ配下の(モデル名複数形)/_(モデル名).html.erb の省略。

省略せずに書くと、

<%= render 'persons/person' @person %>

ってことなんだね。

配列を渡すと・・・

配列をパラメタで渡すと、その配列数分、テンプレートを使った描画を繰り返すので便利。
また、配列のなかに複数のモデルが含まれている場合は、それぞれのモデルにおいて上記ルールのテンプレートを見に行く仕組らしい。