我有2个具有HABTM关系的模型
User
has_and_belongs_to_many :rooms
Room
has_and_belongs_to_many :users
我还创建了迁移以加入表格
create_join_table :users, :rooms do |t|
t.index [:user_id, :room_id]
t.index [:room_id, :user_id]
end
我想在用户A的房间中查询包含用户B的user_id的房间。我该怎么办?
答案 0 :(得分:1)
我不确定你是否可以在单个SQL调用中执行此操作,但听起来你想要两个集合的联合。
UserA.rooms & UserB.rooms
这应该为您提供两个用户共享的房间。
答案 1 :(得分:0)
这应该有效
user_b = User.find(id: 123) #or id of user b
user_a = User.find(id: 234) #or id of user a
user_b.rooms.joins(:users).where(users: {id: user_a.id})