.where通过多个模型查询

时间:2018-12-06 15:57:33

标签: sql ruby-on-rails ruby nested

我想访问每个与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 :(得分:0)

这应该可以完成工作:

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

答案 1 :(得分:0)

Account.where(role: current_user.account.role).includes(:user).map(&:user)