ユーザーとユーザーの関連付けを使用してリアルタイムのダイレクトメッセージングを作成したいのですが、これを作成する方法は正確にはわかりませんが。1対1でメッセージを送信するメール
例:ユーザー1が連絡先リストからユーザー2のイメージをクリックすると、ユーザー1がメッセージを作成し、ユーザー2に送信します。 User2はメッセージを確認して返信し(インスタントメッセージングのように)、両方のユーザーに同じメッセージが表示されます。
メッセージにはタイトル、イメージ、本文があります(それぞれは利用可能ですが、必須ではありません)。古いメッセージと新しいメッセージ機能は、新しいメッセージ機能より古い古いメッセージを持つ同じページにあります。
ユーザーに届くときにメッセージがどのように表現されるかというアイデアもあります。会話中にメッセージがリアルタイムで表示され、会話に含まれていない場合は連絡先イメージが会話ページに表示されます。あなたが会話を見るためにユーザーをクリックする場所。
問題の一部は、どのように2番目のユーザーを特定するのかと思います。
モデルユーザー::
has_many :conversations
has_many :messages through => conversations
モデル会話:
has_many :messages
has_many :users
モデルメッセージ:
belongs_to :users through => conversations
has_many :conversations
表はの線に沿って次のようになります。
以下の線に沿って考えますメッセージ:
body
title
image
conversation_id
会話:
message_id
user_id
ユーザー:
id
任意のアイデア/考えですか?
復帰のための@NhãHuỳnhtks。これはどのようにしてuser1とuser2を選択しますか?現時点では、user1がメッセージを作成するのはuser_idによってのみ彼にリンクされていませんか? – blastoff
こんにちは@blastoff、user1がメッセージを作成するとき、それはそれらの間の会話の中にあります(ユーザー)。 conversation.messagesだけですべてのメッセージを取得できます。新しいものを含む。 P/s:この場合のメッセージのuser_idは、誰がメッセージの所有者であるかを表示します。会話は主要なモデルです。この助けを願っています。 :) – thanhnha1103
大丈夫です。だからUserとConversationの#idは自分のidですか?つまり、すべての表に対して自動生成されるIDです。また、実際にこれを行うには4つの異なるモデルが必要ですが、私が知っているのではなく、最大で3つで済むと思っていました。 – blastoff