テンプレート呼び出しでモデルを渡すときに省略する
ruby on rails 3
勉強中、以下のような表記の場合に、どのテンプレートを指すことになるのか、さっぱりわからなかった。
<%= render @person %>
これ、テンプレートにモデル@person
をパラメタ渡しすると、
自動で、部分テンプレート/views/persons/_person.html.erb
を描画することになるらしい。
つまりは、 viewsフォルダ配下の(モデル名複数形)/_(モデル名).html.erb の省略。
省略せずに書くと、
<%= render 'persons/person' @person %>
ってことなんだね。
配列を渡すと・・・
配列をパラメタで渡すと、その配列数分、テンプレートを使った描画を繰り返すので便利。
また、配列のなかに複数のモデルが含まれている場合は、それぞれのモデルにおいて上記ルールのテンプレートを見に行く仕組らしい。