2012-02-15 58 views
1

如何呈现特定的次数? 我让我的topmenu和sidemenu拥有相同的页面。我希望topmenu只显示前4页,并让sidemenu显示所有可用页面。如何呈现特定的次数?

<%= render :partial => '/shared/menu_branch', :collection => roots, :locals => { 

      :hide_children => hide_children, 
      :sibling_count => (roots.length - 1), 
      :apply_css => true 
} -%> 

和menu_branch

<% 
    if !!local_assigns[:apply_css] and (classes = menu_branch_css(local_assigns)).any? 
    css = "class='#{classes.join(' ')}'".html_safe 
    end 
    dom_id = "id='item_#{menu_branch_counter}'".html_safe if menu_branch.parent_id.nil? 
-%> 

<li<%= ['', css, dom_id].compact.join(' ').gsub(/\ *$/, '').html_safe %>> 
    <%= link_to menu_branch.title, menu_branch.url -%> 
</li> 

这是我想渲染只有4次就行了。

<li<%= ['', css, dom_id].compact.join(' ').gsub(/\ *$/, '').html_safe %>> 
    <%= link_to menu_branch.title, menu_branch.url -%> 
</li> 

回答

1

好吧我想通了我的自我。这是我改变的代码。

<%= render :partial => '/shared/menu_branch', :collection => roots.select{|p|roots.rindex(p) < 4}, :locals => { 
       :hide_children => hide_children, 
       :sibling_count => (roots.length - 1), 
       :apply_css => true 
       } -%> 

这就是我所添加的。

:collection => roots.select{|p|roots.rindex(p) < 4},