【问题标题】:How to group notifications from different sources into one model如何将来自不同来源的通知分组到一个模型中
【发布时间】:2012-06-09 11:50:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails activerecord models


    【解决方案1】:

    解决方法就是多态模型,如果在Notification模型中添加parent_idparent_class字段,就可以轻松创建多态模型通知模型中的关联来实现它,它的外观如下:

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

    然后使用它就很简单了:

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

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

    【讨论】:

    猜你喜欢
    • 2013-11-13
    • 1970-01-01
    • 2018-03-30
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    相关资源
    最近更新 更多