У меня есть три модели, которые у меня возникают проблемы при заказе:
User(:id, :name, :email)
Capsule(:id, :name)
Outfit(:id, :name, :capsule_id, :likes_count)
Like(:id, :outfit_id, :user_id)
Я хочу получить все Outfits
, которые принадлежат Capsule
и упорядочить их по likes_count
.Это довольно тривиально, и я могу получить их так:
Outfit.where(capsule_id: capsule.id).includes(:likes).order(likes_count: :desc)
Однако я хочу также заказать наряды так, чтобы, если определенному пользователю это понравилось, оно выглядело вышев списке.
Пример, если у меня есть следующие записи об экипировке:
Outfit(id: 1, capsule_id: 2, likes_count: 1)
Outfit(id: 2, capsule_id: 2, likes_count: 2)
Outfit(id: 3, capsule_id: 2, likes_count: 2)
И указанному пользователю понравился наряд только с идентификатором 3, возвращаемым заказом должны быть идентификаторы: 3, 2, 1
Я уверен, что это довольно легко, но я не могу этого понять.Любая помощь будет принята с благодарностью:)