基于HABTM匹配的Rails查询

时间:2016-04-14 23:12:24

标签: mysql ruby-on-rails ruby-on-rails-3

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

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

我试过这个:

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

但它使用OR语句,我需要8和10才需要

1 个答案:

答案 0 :(得分:0)

好吧,以下似乎可以满足我的需求:

user_ids = [8,10]

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

请参阅this答案了解更多详情