-1

有这个articles.facets['date']['terms']数组:

[{"term"=>13, "count"=>4}, {"term"=>12, "count"=>1}]

如果数组中有多个元素满足超过 10 年的要求,我只想打印一次此文本“超过 10 年”

<% articles.facets['yearsexperience']['terms'].each do |facet| %>
  <% if facet['term'] > 10 %>
    "More than 10 years"
  <% end %>
<% end %>

我现在得到相同文本的 2 倍:

"More than 10 years" 
"More than 10 years"
4

2 回答 2

3

使用.any?. 它接受它为可枚举中的每个元素调用的块,如果块为数组中的任何元素返回,则true返回true

<% if articles.facets["yearsexperience"]["terms"].any? { |t| t['term'] > 10 } %>
  More than 10 years
<% end %>
于 2013-09-25T12:39:56.197 回答
0

您可以使用 break 退出 .each 上下文:

<% articles.facets['yearsexperience']['terms'].each do |facet| %>
  <% if facet['term'] > 10 %>
    "More than 10 years"
    <% break %>
  <% end %>
<% end %>
于 2013-09-25T12:39:14.157 回答