Найти, если массив объектов содержит атрибут с определенным значением

Следующий код работает, но можете ли вы сказать, правильно ли это сделать?

У меня есть массив объектов Position, и я хочу проверить, содержит ли он объект, у которого атрибут "hidden" имеет значение "false":

<% if positions.collect{|position| position.hidden}.include?(false) %>
  ...
<% end %>

Ответы

Ответ 1

<% if positions.any?{|position| !position.hidden} %>
  ...
<% end %>

Используя метод any?

Ответ 2

if positions.any? {|position| not position.hidden}

Ответ 3

вы также можете использовать метод all?:

<% unless positions.all? {|position| position.hidden} %>
 ...
<% end %>