Rails 基于 HABTM 匹配的查询

Rails query based on HABTM match

我正在尝试根据 HABTM 关系中的用户查询对话。我有 conversationsusersconversations_users 表,需要根据对话中的用户获取对话。

Conversation 模型包含与 :users 的 HABTM 关系。

我试过这个:

Conversation.includes(:users).where(users: {id: [8,10]})

但它使用了 OR 语句,我需要同时提供 8 和 10

好的,看来以下内容可以满足我的需要:

user_ids = [8,10]

Conversation.joins(:users)
.where(users: {id: user_ids})
.group("conversations.id")
.having(['COUNT(*) = ?', user_ids.count])

参考this答案了解更多详情