如果在我的行中附加图标后索引大于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>
答案 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 %>