2012-06-09 80 views
1

我現在所擁有的是角色扮演模型和消息模型。如何將來自不同來源的通知分組到一個模型中

我希望他們共享相同的通知流:他們都應該創建一個'通知'行,然後將顯示給用戶。 但我希望通知也指向他們的父母。我想過創建一個parent_id和parent_class列,以便我可以獲得父對象。但是有沒有已經建成的方式呢?

我檢出了Polymorphic模型,但我似乎並沒有真正理解如何在此處使用它。

回答

1

該解決方案是完全多態的車型,如果添加PARENT_IDparent_class領域的通知模式,您可以輕鬆地創建你的通知模型來實現它多態關聯,這裏是它會怎樣看:

class Notification < ActiveRecord::Base 
    belongs_to :parent, :polymorphic => true 
end 

然後使用它,它很簡單:

message = # assign the message here 
notification = Notification.create(:parent => message) 

然後,您可以查詢通知並將其用作所有通知的來源。

+0

好吧!現在我明白了,在這裏我還找到了比以前更好的解釋:http://guides.rubyonrails.org/association_basics.html#polymorphic-associations – Neikos

相關問題