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