0

2 人のユーザー間で非常に単純なメッセージング システムを実装する必要があります。唯一の要件は、2 人のユーザー間のすべての会話を分離することです。Message(sender_id, recipient_id )目標を達成するために1 つのモデルのみを使用することが可能で合理的かどうか疑問に思います。

すべての会話のインデックスを取得したいとします。

  • に参加してuser.id = recipient_iduser.id = sender_id 特定のユーザーに関連付けられているすべてのメッセージを取得します
  • メッセージのグループ (チャットボックス) を形成するためidに、反対の参加者 (または であるかどうかsender_id)によって結果を並べ替えます。recipient_idこれが一番難しいステップだと思います。相手のユーザーが 1 回の会話で送信者または受信者になる可能性があるためです。
  • 各グループ内の結果を作成日別に並べ替えて、メッセージを元の順序で表示します。各グループは、異なる会話を表します。

gemを試してみMailboxerましたが、この場合はやり過ぎのようです。Conversationまた、メッセージと 1 対多の関係を持つ新しいエンティティの導入に基づく別のソリューションも考えています。

4

3 に答える 3

0

simple-private-messagesがあなたの問題を解決すると思います。シンプルで、探しているものとまったく同じように見えます。

于 2013-09-20T13:27:38.343 に答える
0

でグループ化することを含むメッセージングの軽量な実装はないようconversationです。最善の解決策は、ゼロから実装することのようです。

于 2013-09-24T17:22:48.250 に答える
-1

fayeサーバーもご覧ください https://github.com/jamesotron/faye-rails & http://railscasts.com/episodes/260-messaging-with-faye

于 2013-09-20T13:32:13.040 に答える