2011-07-14 131 views
2

我有一個用戶模型和組模型。用戶has_and_belongs_to_many:組和組has_and_belongs_to_many:用戶。通過關聯查詢ActiveRecord

我想使用ActiveRecord查詢某個用戶所在的所有組中的所有用戶。我可以通過@ user.groups獲取所有組,並手動將@ user.groups.members一起加入,從而消除重複項正如我所能找到的(一個用戶可能與另一個用戶一起處於多個組中,但我只需要其他用戶的姓名)。

但是有沒有更好的方法來做到這一點?

+0

你可以發佈您的實際模型的代碼?很難判斷你是使用'belongs_to'還是'has_and_belongs_to_many',或者其他的。 –

+0

哎呀,對不起。更新了問題。他們都使用has_and_belongs_to_many。 – Christopher

回答

4

你應該能夠做這樣的事情:

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

太好了,謝謝! – Christopher