User.where()如何从不同的模型中调用值

时间:2018-01-29 20:27:52

标签: ruby-on-rails

我有一个名为Setting的模型,带有一个布尔值" profile_complete:true"如何在用户控制器中调用此选项来限制我要显示的用户。 如果我打电话给所有具有特定角色的用户,我会说

@user = User.where(role: 'admin')

但是角色是在用户模型中定义的。如何从设置模型调用profile_complete?

@user = User.where(role: 'admin', profile_complete: 'true')

1 个答案:

答案 0 :(得分:2)

首先定义用户和设置模型之间的关联

class User
  has_one :setting
end

class Setting
  belongs_to :user
end

使用上述关联使用连接,然后您可以将设置模型调用为

的profile_complete
 @user = User.joins(:setting).where("role = 'admin' AND settings.profile_complete = TRUE")