我网站的导航显然存储在应用程序布局文件中。部分导航由数据库驱动。如何在布局中渲染部分并传入对象集合以进行渲染?
编辑: 我认为我的问题更多地围绕如何将数据转换为部分数据,是从应用程序控制器完成的还是我必须在每个控制器的每个操作中添加数据?
答案 0 :(得分:2)
如果您只想传递一个对象,则可以使用object
上的render
键。传递的对象可以作为与partial相同名称的局部变量访问。因此,如果部分被称为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 %>