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"
答案 0 :(得分:3)
使用.any?
。它接受一个它为枚举中的每个元素调用的块,如果块返回{em>数组中 元素的true
,则返回true:
<% if articles.facets["yearsexperience"]["terms"].any? { |t| t['term'] > 10 } %>
More than 10 years
<% end %>
答案 1 :(得分:0)
你可以使用break来摆脱.each语境:
<% articles.facets['yearsexperience']['terms'].each do |facet| %>
<% if facet['term'] > 10 %>
"More than 10 years"
<% break %>
<% end %>
<% end %>