我在两个模型之间有一个 HABTM 关联,用户和对话。我希望能够查询登录用户的对话(current_user.conversations
),将另一个用户的 id 传递给它,并让它返回一个由两个用户共享的对话(如果存在的话)。(如果一个查询不存在,另一个好处是让查询创建一个。)
关联工作正常,所以我可以通过实例变量访问关联的对象@user.conversations
和@conversation.users
,所以我可以走很长的路并遍历每个对话对象并搜索每个对话对象中的用户关联......但必须有一个有效的构造此查询的方法。我希望能够做的是类似current_user.conversations.where(conversation.users.exists?(id: @user_id))
或类似的事情Conversation.find(users: {id: @user_id AND current_user.id})
。
我想这有一个明显的答案,我一直在这里寻找类似的问题,但没有找到任何问题。在查看 Rails API 文档后,我想我正在寻找的解决方案涉及.includes()
到某种方式,但我无法让它工作。
有什么建议吗?谢谢。