在rails中打破条件块

时间:2014-07-15 09:32:51

标签: ruby-on-rails ruby ruby-on-rails-3

如果在我的行中附加图标后索引大于5,我必须跳出if条件。现在它继续添加图标。

<div class="row sub-navigation">
  <% @projects.each_with_index do |project, index| %>       
  <div class="col-sm-2 col-xs-1">                                  
    <% if index > 5 %>
      <%= link_to "", path, remote: true, id: "project_div", 
                class: "glyphicon glyphicon-chevron-down" %>
    <% else %>      
      <%= link_to project.name, project_url(project.project_id), class: ('active' if current_page?(project_path(project.project_id)) ) %>
    <% end %>
  </div>
  <% end %>
</div>

2 个答案:

答案 0 :(得分:4)

您可以使用break

<% @projects.each_with_index do |project, index| %>
   <% break if index < 5 %>
<% end %>

-

或者您也可以.take使用<% @projects.take(5).each do |project| %> ... <% end %>

break

这将允许您将循环的值限制为仅5个对象,从而无需进一步的逻辑


Dax是一个常见的编程函数,旨在摆脱循环

我建议的if是将<% if index < 5 %> <% break %> <% else %> ... do something <% end %> 声明添加到其中:

<% your_class = index > 5 ? nil : "icon_class" %>
<%= link_to "path", path_helper, class: your_class %>

如果您只想为前5个链接添加图标,则需要执行以下操作:

<div class="row sub-navigation">
  <% @projects.each_with_index do |project, index| %>       
  <div class="col-sm-2 col-xs-1">               
    <% your_class = index > 5? "icon_class" : nil %>
    <% link_to "", path, remote: true, id: "project_div", class: your_class %>
  </div>
</div>

-

<强>更新

回应你的牧师,这就是你需要做的事情:

{{1}}

答案 1 :(得分:1)

您可以尝试<% break if index > 5 %>