在我的代码中,Room has_many:users,Users拥有:name属性
我们还说我有NameArr,一组名字。
获得所有拥有Arr用户的房间的最佳方法是什么?
(例如,如果Arr = [" John"," Mark"," Matt"]那么我希望所有房间都有一个名字为"约翰"和一个名字为#34的用户;马克"和一个名字为#34的用户;马特")
答案 0 :(得分:2)
您需要INNER JOIN
来满足需求。
Room.joins(:users).
where(users: { name: ["John", "Mark", "Matt"] } )
答案 1 :(得分:0)
请试试这个
Room.joins(:users).where("users.name in (?)", nameArr).group("rooms.id").having("count(distinct users.name)=?", nameArr.count)