2016-05-07 15 views
0

私は自分のウェブサイトでチャット機能を作りたいです。ユーザーがログインすると、別のユーザーにメッセージを送信できます。私はユーザー、チャット、メッセージモデルを持っています。phoenixフレームワークのウェブサイトでチャット機能を使用するにはどうすればよいですか?

schema "chats" do 

belongs_to :user, Myapp.User 
has_many :messages, Myapp.Message 
timestamps 

end 

schema "users" do 

has_many :chats, Myapp.Chat 
has_many :messages, Myapp.Message 

timestamps 

end 

schema "messages" do 

belongs_to :chats, Myapp.User 
belongs_to :users, Myapp.User 


timestamps 
end 

私はチャットをユーザーに割り当てて、ユーザーが新しいチャットを行うときに、送信者のuser_idが割り当てられるようにしました。私はメッセージを受け取るユーザーを割り当てることに苦労しています..私はこれをどのようにしてできますか?

答えて

0

チャットをモデル化する方法はたくさんあります。 最も簡単なの一つは、唯一の1のチャットを作成することです:あなたは、リアルタイムチャットアプリケーションを作成したい場合は

schema "users" 
    has_many :chats, Myapp.Chat 

schema "messages" do 
    belongs_to :chat, Myapp.User 
    belongs_to :from_user, Myapp.User 
    belongs_to :to_user, Myapp.User 

schema "chats" 
    belongs_to :user1, Myapp.User 
    belongs_to :user2, Myapp.User 
    has_many :messages, Myapp.Message 

次に、ユーザーは、メッセージ、のみチャットを持っている必要はありませんPhoenixチャンネルとこのチャットアプリケーションの例もチェックしてください:https://github.com/chrismccord/phoenix_chat_example

+0

ありがとうございました。スキーマの分野についてもう一度質問できますか?したがって、チャットテーブルでは、ユーザ1とユーザ2はuser_idを参照するカラムになります...そうですか? –

+0

はい、そうです:) – tkowal

+0

ありがとう、私はどのようにユーザー1とユーザー2のIDをデータベースに提出できますか?ユーザー1の場合、私はuser_idを取得するようにユーザーを割り当てましたが、私はユーザー2のIDを提出するのに苦労しています。 –

関連する問題