私が今持っているのは、ロールプレイ モデルとメッセージ モデルです。
同じ通知ストリームを共有したい: どちらも「通知」行を作成し、ユーザーに表示する必要があります。しかし、通知も親を指すようにしたいです。親オブジェクトを取得できるように、parent_id および parent_class 列を作成することを考えました。しかし、それを行う方法はすでに組み込まれていますか?
ポリモーフィック モデルを調べましたが、ここでの使用方法がよくわかっていないようです。
私が今持っているのは、ロールプレイ モデルとメッセージ モデルです。
同じ通知ストリームを共有したい: どちらも「通知」行を作成し、ユーザーに表示する必要があります。しかし、通知も親を指すようにしたいです。親オブジェクトを取得できるように、parent_id および parent_class 列を作成することを考えました。しかし、それを行う方法はすでに組み込まれていますか?
ポリモーフィック モデルを調べましたが、ここでの使用方法がよくわかっていないようです。
解決策はまさにポリモーフィックモデルです。通知モデルにparent_idフィールドとparent_classフィールドを追加すると、通知モデルでポリモーフィックアソシエーションを簡単に作成して実装できます。外観は次のとおりです。
class Notification < ActiveRecord::Base
belongs_to :parent, :polymorphic => true
end
次に、それを使用するのは非常に簡単です。
message = # assign the message here
notification = Notification.create(:parent => message)
次に、通知をクエリして、それをすべての通知のソースとして使用できます。