我想創建一個簡單的消息「線程」應用程序,如在Facebook收件箱中找到。當我在rails中創建Model的新記錄時,創建相關表的更好方法是什麼?
我有兩個模型:Message和UserHasMessage。
當一個新的消息被創建時,有一個發送者和一個接收者。我要做的就是創建兩個記錄UserHasMessage看起來像這樣:
| user_id | message_id | is_sender |
|sender_id| message_id | 1 |
|receiver_id| message_id | 0 |
我試圖做這種方式,但不認爲它看起來右:
16 def create
17 @message = Message.new(params[:message])
18 if @message.save
19 @user_has_message = UserHasMessage.new
20 @user_has_message.user_id = params[:sender_id]
21 @user_has_message.message_id = @message.id
22 @user_has_message.is_sender = 1
23 @user_has_message.save
24
25 @user_has_message = UserHasMessage.new
26 @user_has_message.user_id = params[:receiver_id]
27 @user_has_message.message_id = @message.id
28 @user_has_message.is_sender = 0
29 @user_has_message.save
30
31 flash[:notice] = "Successfully created message."
32 redirect_to @message
BTW:未參數[:receiver_id]和params [:sender_id]是從視圖/ _form傳遞的hidden_fields ...所以我不知道它如何流入創建...
謝謝!
我該怎麼做後一個建議。即使消息本身沒有sender_id或receiver_id的屬性,第一個建議是否也能工作(這必須存儲在關聯UserHasMessages中。 – Angela 2011-03-24 18:00:06
)您可以在模型上定義新的方法和屬性,並使用這些方法執行其他操作通過聲明「def sender_id =(myid)」,你可以像上面描述的那樣調用該函數,對於後一種情況,模型關聯教程可以在這裏找到.http://guides.rubyonrails。組織/ association_basics.html – Joshua 2011-03-25 21:35:41