Rails - 拥有并属于许多...具有同一个表的多个连接的条件

时间:2014-07-06 08:26:08

标签: mysql ruby-on-rails arel

我与has_and_belongs_to_many用户关联进行了模型对话

class Conversation < ActiveRecord::Base
  has_many :messages
  has_and_belongs_to_many :users
end

我想搜索两个用户关联的对话。

我正在考虑加入users-table两次并使用AND AND条件。我曾试图使用AREL,但我还没有让它正常工作。

解决方法是使用&amp;用户对话的操作员,如:

@first_user.conversations & @second_user.conversations
=> Returns conversations that both users are subscribed to.

但这会导致多个sql查询,我认为这不是最好的选择。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Conversation.joins(:users).where('user_id in (?)',[1,2]).group(:id).having('count(user_id) > 1')
相关问题