Скажем, у меня есть модель с именем Team
и модель с именем Member
.
# Team
has_many :members
has_many :member_roles
# leaders are also members derived thru some association
has_many :leaders,
-> { leadership },
through :member_roles,
class_name: "Member"
# MemberRole
belongs_to :team
belongs_to :member
scope :leadership,
-> { where(role: "Leader") }
Я хочу, чтобы все участники сначала отсортировались по лидерам , но в БДна уровне, чтобы я мог работать с гемами нумерации страниц так же, как и с любым другим запросом.
Я не смог этого сделать, не подвергаясь или не разбиваясь на несколько вызовов БД, что нарушает нумерацию страниц.Я надеялся на что-то похожее, но безуспешно.
Team.find(1).members.order("id = Team.find(1).leaders.pluck(:id)' DESC")
Можно ли достичь того, что я ищу, чтобы разместить определенную запись в начале коллекции в одном вызове БД?
Я на Rails 5.2, использую Postgres FWIW