0

私のサイトのナビゲーションは、明らかにアプリケーション レイアウト ファイルに保存されています。そのナビゲーションの一部は、データベースによって駆動されます。レイアウトでパーシャルをレンダリングし、オブジェクトのコレクションを渡してレンダリングするにはどうすればよいですか?

編集:私の質問は、データを部分的に取得する方法を中心に展開していると思いますが、それはアプリケーションコントローラーから行われますか、それとも各コントローラーの各アクションにデータを追加する必要がありますか?

4

1 に答える 1

2

オブジェクトを 1 つだけ渡したい場合は、objectキー onを使用できますrender。渡されたオブジェクトは、パーシャルと同じ名前のローカル変数としてアクセスできます。SO パーシャルが呼び出された場合navigation、ローカル変数は になりますnavigation

<%= render :partial => 'foo/navigation', :object => @my_collection

部分的に:

<% for obj in navigation %>
  ...
<% end %>

複数のオブジェクトを渡したい場合は、localsキーを使用できます。レイアウト内のローカル変数の名前は、渡されたハッシュのキーになります。

<%= render :partial => 'foo/navigation', :locals => { :foo => 'Hello', :bar => 'World' }

部分的に:

<%= foo %>
<%= bar %>
于 2011-04-01T21:40:38.753 に答える