Как сделать конкретное количество раз? - PullRequest
1 голос
/ 15 февраля 2012

Как отрендерить определенное количество раз?Я делаю так, чтобы в моем верхнем и боковом меню были одни и те же страницы. Я хочу, чтобы в верхнем меню были показаны только первые 4 страницы, а в боковом меню - все доступные страницы.

<%= 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 Ответ

1 голос
/ 16 февраля 2012

Хорошо, я понял это сам.Это код, который я изменил.

 <%= 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},
...