我有一个与 has_and_belongs_to_many 用户关联的模型对话
class Conversation < ActiveRecord::Base
has_many :messages
has_and_belongs_to_many :users
end
我想搜索两个用户关联的对话。
我正在考虑加入用户表两次并使用 AND 条件。我曾尝试使用 AREL,但无法正常工作。
解决方法是在用户对话中使用 & 运算符,例如:
@first_user.conversations & @second_user.conversations
=> Returns conversations that both users are subscribed to.
但这会导致多个 sql 查询,我认为这不是最佳选择。
感谢您的帮助!
最佳答案
Conversation.joins(:users).where('user_id in (?)',[1,2]).group(:id).having('count(user_id) > 1')
关于mysql - Rails - 具有并属于许多...条件与同一个表的多个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24594021/