通过关联查询ActiveRecord

时间:2011-07-14 22:01:08

标签: ruby-on-rails activerecord associations

我有一个用户模型和组模型。用户has_and_belongs_to_many:groups和group has_and_belongs_to_many:users。

我想使用ActiveRecord查询某个用户所在的所有组中的所有用户。我可以通过@ user.groups获取所有组,并手动连接@ user.groups.members,消除重复项我可以找到(用户可能与其他用户分在多个组中,但我只想要其他用户的名称一次)。

但有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

你应该可以这样做:

User.includes(:groups).where("groups.id in (?)", @user.group_ids)