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

Ruby on rails User.where()如何从不同的模型调用值,ruby-on-rails,Ruby On Rails,我有一个名为Setting的模型,带有一个布尔值“profile_complete:true”,我如何在用户控制器中调用它来限制要显示的用户。 如果我给所有具有特定角色的用户打电话,我会说 @user = User.where(role: 'admin') 但是角色是在用户模型中定义的。如何从设置模型中调用profile_complete @user = User.where(role: 'admin', profile_complete: 'true') 首先定义用户和设置模型之间的关联

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

@user = User.where(role: 'admin')
但是角色是在用户模型中定义的。如何从设置模型中调用profile_complete

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

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

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")

关系是用户有一个设置,设置属于用户