【发布时间】:2011-04-01 21:30:51
【问题描述】:
我网站的导航显然存储在应用程序布局文件中。该导航的一部分是由数据库驱动的。如何在布局中渲染部分并传入对象集合以进行渲染?
编辑: 我认为我的问题更多地围绕如何将数据获取到部分,是从应用程序控制器完成还是我必须在每个控制器的每个操作中添加数据?
【问题讨论】:
标签: ruby-on-rails-3 layout renderpartial
我网站的导航显然存储在应用程序布局文件中。该导航的一部分是由数据库驱动的。如何在布局中渲染部分并传入对象集合以进行渲染?
编辑: 我认为我的问题更多地围绕如何将数据获取到部分,是从应用程序控制器完成还是我必须在每个控制器的每个操作中添加数据?
【问题讨论】:
标签: ruby-on-rails-3 layout renderpartial
如果您只想传递一个对象,那么您可以在render 上使用object 键。传递的对象将作为与局部变量同名的局部变量进行访问。所以如果部分被称为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 %>
【讨论】:
@my_collection。