Как сортировать цикл на основе значения ответа из массива

#ruby-on-rails #ruby-on-rails-3

Вопрос:

Итак, ниже приведена небольшая структура, как я зацикливаю элементы, я хочу отсортировать их в своем цикле по количеству участников до наименьшего, вместо того, чтобы они отображались случайным образом? Как я должен подойти к этому? Кроме того, если цикл содержит только 2 элемента, как я могу установить значение display div равным none?

     <% for item in @items %>

<%= item.name %>
<%= item.members %>

<% end %>
 

Ответ №1:

Вы могли бы попробовать:

 <% if @items.size > 2 %>
  <div>
    <% @items.sort_by { |item| item.members.size }.each do |item| %>
      <%= item.name %>
      <%= item.members %>
    <% end %>
  </div>
<% end %>
 

Комментарии:

1. В sort_by том, что я получаю wrong number of arguments (given 0, expected 1)

2. Являются ли члены значением или моделью с именем члены? Если это просто значение, то просто удалите «.size».