.where запрос через несколько моделей - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу получить доступ к каждому пользователю, который имеет тот же role, что и current_user.Обычно я делаю что-то вроде: User.where(role: current_user.role), но чтобы сохранить все в чистоте, у меня есть вложенная модель с именем Account, в которой я храню практически все, кроме стандартных данных устройства, таких как электронная почта.

Что я хочудостижение - что-то вроде User.account.where(role: current_user.account.role), которое, к сожалению, не работает.Также я читаю о .joins, но я действительно не понимаю, что я могу с этим сделать.Во всяком случае, я пытался сделать что-то вроде User.joins(:account).where(role: 1) безуспешно.Также я попробовал фигурные скобки и много искал, но так как я не являюсь носителем языка, я не знаю, что искать.

User.rb has_one :account

Account.rb belongs_to :user

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

А как же

Account.where(role: current_user.account.role).includes(:user).map(&:user)
0 голосов
/ 06 декабря 2018

Это должно сделать работу:

User.joins(:account).where('accounts.role': current_user.account.role)
...