嘿, 我試圖實現社交網絡中使用的消息系統。我面臨的問題首先是關於數據庫結構,其次是如何在rails中實現它。
我的第一個想法是我使用3個表:Rails私人消息系統
消息:ID |主題|文| created_at
接收器:ID | MESSAGE_ID |閱讀:布爾
創:ID | MESSAGE_ID |閱讀:布爾
現在我想知道如何實現以下功能:
1)用戶可以刪除他的消息。但是因爲兩者都希望閱讀該消息,所以如何確保只有當兩個用戶都刪除了該消息時纔會刪除該消息。
2.)我如何實現答覆?或者實際上我如何找到相應的創作者?
3.)如何找出郵件是否被接收者讀取?
另一個想法是: creator_messages:ID | creator_id | receiver_id |主題|文|閱讀| created_at receiver_messages:同creator_messages
這種區分之間的用戶,這樣他們就可以單獨刪除他們的消息。但是我怎麼知道郵件是否被讀取?
我的第三種方法基本上是我的第二個,但只有一個表消息,然後顯示給用戶。
1.只要有一個用戶刪除它,郵件就會被刪除。
2.實際上,我如何將關係表示爲has_many並且屬於?
我認爲它會像這樣工作:
model User
:has_many :send_messages, :class_name=>"messages", :foreign_key=>"creator_id"
:has_many :received_messages, :class_name=>"messages", :foreign_key=>"receiver_id"
end
model Messages
belongs_to :user
end
但不知何故,我沒有得到它的工作。猜我在這裏錯過了一些基本的東西。
希望有人能幫助我=)非常感謝
它應該是':sent_messages',如果其他是':received_messages' :) – 2011-02-24 10:22:55
我沒有嘗試建立一個私人消息系統,但是如果我必須這樣做,我會深入到這個代碼中https://github.com/insoshi/insoshi)或者檢查這個插件:https://github.com/professionalnerd/simple-private-messages(使用Restful Authentication)。希望它可以幫助... – benoitr 2011-02-24 11:28:37
嘿,爲什麼你想要消息模型中的多個創建者的消息,而不僅僅是creator_id? – 2011-02-24 11:33:05