Упорядочение коллекции ActiveRecord по набору значений - PullRequest
0 голосов
/ 17 марта 2019

Скажем, у меня есть модель с именем 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...