查询包含一对多关系中的某个对象的对象

时间:2016-06-15 21:53:00

标签: ruby-on-rails ruby ruby-on-rails-4

所以我有两个模特

class User
  has_many :roles
end

class Role
   belongs_to :user
end

我如何查询“谁有xxx-role?” 谢谢,

1 个答案:

答案 0 :(得分:0)

开始我的角色查询

roles = Role.where(some_key: some_val).includes(:user)

您可以在includes处加载相关的用户记录。通过这种方式,您可以像这样获得用户:

roles.map(&:user),相当于roles.map { |role| role.user }

没有includes它会工作但速度会慢一些。这是因为N+1 sequel issue