如果我有两个模型,比如说,用户模型和下面定义的公司模型。我如何获得一组用户的所有公司?
class User < ActiveRecord::Base
belongs_to :company
end
class Company < ActiveRecord::Base
has_many :users
end
users = User.where(:state => "Florida")
由此,我需要一个包含属于这些用户的所有公司的变量
companies = users.?
我是否需要遍历每个用户并将其添加到阵列?我猜有更好的方法来做到这一点。任何帮助表示赞赏。
答案 0 :(得分:1)
你可以这样做
Company.includes(:users).where(users: { state: 'Florida' })
但考虑到http://guides.rubyonrails.org/ recommendations
做
会更正确Company.joins(:users).where(users: { state: 'Florida'})
INNER JOIN
代替LEFT OUTER JOIN