Rails部分循环遍历local_assigns

时间:2014-02-18 23:17:20

标签: ruby-on-rails

我在locals hash中填充了许多实例变量。有没有办法从局部中的local_assigns中提取多个实例变量?

<%= render 'tabs', :locals => {:tab1 => @news, :tab2 => @people, :tab3 => @tags} %>

在部分中我想基于实例变量的数量创建一组动态标签,我用本地填充。

<% local_assigns.each do |local_assign| %>
  <% local_assign.each do |tabs| %>
     <!-- Grab tab class name -->
     <li class="tab"><%= tabs[:class] %></li>
  <% end %>
<% end %>

2 个答案:

答案 0 :(得分:0)

为什么不把它作为数组传递

render 'tabs', :locals => {:tabs => [@news, @people, @tags]} %>
在您的视图中

<% tabs.each do |tab| %>
   <!-- Grab tab class name -->
   <li class="tab"><%= tab[:class] %></li>
<% end %>

答案 1 :(得分:0)

谢谢Vimsha我最终使用集合而不是本地人,并在控制器中创建了实例变量。

http://guides.rubyonrails.org/layouts_and_rendering.html

Controller
@tabs = [@news, @people]

View
<%= render 'tabs', :collection => @tabs %>