1

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

我希望他们共享相同的通知流:他们都应该创建一个“通知”行,然后将其显示给用户。但我希望通知也指向他们的父母。我想创建一个 parent_id 和 parent_class 列,以便我可以获得父对象。但是有没有一种已经内置的方法呢?

我检查了多态模型,但我似乎并不真正了解如何在这里使用它。

4

1 回答 1

1

解决方案正是多态模型,如果将parent_idparent_class字段添加到Notification模型,您可以轻松地在通知模型中创建多态关联来实现它,如下所示:

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

然后使用它非常简单:

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

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

于 2012-06-09T12:16:17.077 回答