如何将来自不同来源的通知分组到一个模型中

时间:2012-06-09 11:50:51

标签: ruby-on-rails activerecord models

我现在所拥有的是角色扮演模型和消息模型。

我希望他们共享相同的通知流:他们都应创建一个“通知”行,然后将其显示给用户。 但我希望通知也指向他们的父母。我考虑创建一个parent_id和parent_class列,以便我可以获取父对象。但是,是否已经建立了这样做的方式?

我查看了Polymorphic Models,但我似乎并不真正理解如何在这里使用它。

1 个答案:

答案 0 :(得分:1)

解决方案正是多态模型,如果您将 parent_id parent_class 字段添加到通知模型,您可以轻松创建多态您的通知模型中的关联实现它,这是它的外观:

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

然后使用它很简单:

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

然后,您只需查询通知并将其用作所有通知的来源。