2016-05-09 55 views
0

想創建與用戶到用戶關聯的實時直接消息傳遞,雖然不能看到如何創建這個。Rails信息一對一

示例:User1從其聯繫人列表中單擊User2的圖像,User1創建一條消息併發送給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 

任何想法/想法?

回答

0

試試這個:

user.rb:

has_many :messages 
has_and_belongs_to_many :conversations 
# id 

message.rb

belongs_to :user 
belongs_to :conversation 
# body 
# title 
# image 
# conversation_id 
# user_id 

conversation.rb

has_many :messages 
has_and_belongs_to_many :users 
# id 

conversations_users.rb

belongs_to :user 
belongs_to :conversation 
# conversation_id 
# user_id 

注:有了這個結構,也可以有兩個以上的成員。

希望得到這個幫助。 :)

+0

嗨@NhãHuỳnhtks爲恢復。這是如何選擇user1和user2的?此刻如果user1創建的消息不是隻通過user_id鏈接到他的消息嗎? – blastoff

+0

Hi @blastoff,當user1創建消息時,它在它們(用戶)之間的對話內。只是conversation.messages獲取所有消息。包括新的。 P/s:在這種情況下,消息的user_id只顯示我們是誰的消息所有者。對話是主要模式。希望這個幫助。 :) – thanhnha1103

+0

好吧。所以用戶和對話下的#號是他們自己的ID?即爲所有表格自動生成的id。它也真的需要4個不同的模型來做到這一點,不是我所知道的,但會認爲它可以完成最多3個。 – blastoff