Rails 3 中的高级查询



我有一个 Rails 应用程序,它有UserRoleGroup模型。

用户模型

has_and_belongs_to_many :roles
has_and_belongs_to_many :groups

榜样

has_and_belongs_to_many :users

组模型

has_and_belongs_to_many :users

我还创建了一个映射表,例如,

用于映射其 ID 的roles_usersgroups_users

所以这里每个用户都可以有多个组和角色,

在我的榜样中,只有三个条目,

admin ID 1trainer ID 2 , 具有 ID 3 trainee

我想查找角色 ID = 3 的特定组下的所有用户,

我这样做过,

@group = Group.find(2)
@users = @group.users

在这里,我正在组id =2下获取所有用户,但我想使用角色id = 3再次过滤它。如何解决这个问题。

任何帮助,不胜感激。

尝试:

@group = Group.find(2)
@users = @group.users.joins(:roles).where("roles.id = ? && users.age = ?",3,30)

应该@group.users.joins(:roles).where(roles: { id: 3 })

相关内容

  • 没有找到相关文章

最新更新