는 관계가 나는 사용자가 소유자 또는 수신기 또는 보낸 사람이 어디 모든 대화를하고 싶지조인으로 쿼리가 완료되지 않은 결과를 생성합니까? 여기
class Conversation < ApplicationRecord
belongs_to :user
has_many :messages
class Message < ApplicationRecord
belongs_to :sender, class_name: 'User'
belongs_to :receiver, class_name: 'User'
belongs_to :conversation
처럼 보이게하는 방법이다, 내가 그렇게
[79] pry(main)> Conversation.joins(:messages).where("messages.receiver_id = ? OR messages.sender_id = ? OR conversations.user_id = ?", 2, 2, 2).count
(0.5ms) SELECT COUNT(*) FROM "conversations" INNER JOIN "messages" ON "messages"."conversation_id" = "conversations"."id" WHERE (messages.receiver_id = 2 OR messages.sender_id = 2 OR conversations.user_id = 2)
=> 0
그러나 0
처럼 그 일을하고 내가 가진, 잘못 대화로 user_id: 2
[78] pry(main)> Conversation.where(user_id: 2).count
(0.4ms) SELECT COUNT(*) FROM "conversations" WHERE "conversations"."user_id" = $1 [["user_id", 2]]
=> 1
어떤 질문이 내 질문에 잘못 되었나요?