Rails 基于 HABTM 匹配的查询
Rails query based on HABTM match
我正在尝试根据 HABTM 关系中的用户查询对话。我有 conversations
、users
和 conversations_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答案了解更多详情
我正在尝试根据 HABTM 关系中的用户查询对话。我有 conversations
、users
和 conversations_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答案了解更多详情