2017-12-05 6 views
0

current_userと他のユーザーの会話を見つけるためにActiveRecordクエリが必要ですユーザー同士の会話を見つける

会話には多くのユーザーが参加できます。そのクエリでユーザーIDを設定する必要があります(2人以上のユーザーができます)。

class Conversation < ActiveRecord::Base 
    has_many :users 
end 

class User < ActiveRecord::Base 
    belongs_to :conversations 
end 

答えて

1

あなたが参加し、ハッシュとしてクエリを置くことができます

Conversation.joins(:users).where(conversation_attr: some_value, users: { id: current_user.id }) 

かが、2人の特定のユーザーの間で具体的な会話を取得するために働くだろう会話や特定のユーザーを取得するための

Conversation.joins(:users).where(conversation_attr: some_value, users: { id: [user_id1, user_id2, ...]}) 
+0

それ以上では、何かが足りないかもしれないと思う。 –

+0

特定の会話を定義するものは不明ですが、追加の会話クエリー属性でwhere句を拡張できます。何かのように: Conversation.joins(:users).where(conversation_attr:some_value、users:{id:[user_id1、user_id2、...]}) –

+0

私はユーザと会話の間でjoinテーブルuser_conversationsを作成しました。 ( "COUNT(user_conversations.user_id)=#{user_ids.size}"を持つ)。to_a(user_conversations:{user_id:user_ids})グループ( 'conversations.id' ** –

関連する問題