У меня 3 модели. Пользователь, Язык, Ссылка. Ссылка принадлежит пользователю и языку. Я хочу создать список из пяти самых активных языков на главной странице. Итак, я хочу вывести пять языков в порядке убывания количества отдельных пользователей, разместивших ссылки на этом языке.
Например. Испанский имеет 6 ссылок, размещенных тремя разными пользователями. Марокко имеет 7 ссылок, размещенных двумя разными пользователями. У французского языка 5 ссылок, размещенных 5 разными пользователями.
Таким образом, порядок языков должен быть французский, испанский, марокканский.
Вот модели для каждого объекта: -
class User < ApplicationRecord
has_many :links
class Language < ApplicationRecord
belongs_to :user
has_many :links
class Link < ApplicationRecord
belongs_to :user
belongs_to :language
Я новичок в рельсах, но я немного попробовал, чтобы увидеть, как это можно сделать.
Например, я попробовал Link.select(:user_id).distinct.count
, что приводит к подсчету уникальных пользователей, разместивших ссылки. Но я не знаю, как упорядочить языки на основе количества отдельных пользователей, разместивших ссылки на этом языке. Помощь будет высоко оценена.
Rails
вы используете? - person Igor Drozdov   schedule 30.07.2017