私は2つのモデル、ユーザーと会話の間にHABTMの関連付けをしています。 ログインしているユーザーの会話(current_user.conversations
)を照会し、別のユーザーのIDを渡して、両方のユーザーが共有している会話を返すようにしたいと考えています。 (追加特典は、1が存在しない場合、クエリは1を作成してもらうことであろう。)HABTMアソシエーションの属性別にモデルを照会
団体が正常に動作しているので、私は@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()
になると思っていますが、うまく動作しません。
アドバイスはありますか?ありがとう。
あなたはユーザーとの会話の間の関係をモデル化し、高レベルのスニペットを投稿することができますか?会話にはユーザーごとに外部キーが設定されていますか(例: 'sender_id'、' recipient_id')? –