Надеюсь, простой вопрос. У меня есть несколько моделей, две из них, :users
и :songs
, взаимодействуют для получения данных из базы данных.
Пользователь has_many :songs
.
Я пытаюсь найти пользователей с наибольшим количеством песен в действии USER INDEX
, то есть список 10 пользователей с наибольшим количеством песен, пользователя с наибольшим количеством песен вверху, по убыванию.
Пока у меня есть в users_controller
в index
;
@users = User.all
И пока все, что я могу сделать в представлении, users/index
;
<% @users.each do |user| %>
<%= user.name %><%= user.songs.count %>
<% end %>
Работает, подсчитывает песни, но как мне сделать заказ пользователям с большинством песен?
Я смотрю на sort_by внутри блока и думаю, что это можно сделать, перечислив все песни и сгруппировав их по пользователю, но я чувствую, что это недостаточно эффективно. - как видите, я не продвинутый разработчик.
Пожалуйста, скажите мне, что вы, ребята, думаете, и ответьте на мое решение, если это возможно. Меня смущает то, что я упорядочиваю список, сгенерированный из таблицы, по данным, сгенерированным другой таблицей. Должно быть, все просто, но я раньше этого не делал, поэтому не могу обойти это.
Заранее спасибо.