1

私が今持っているのは、ロールプレイ モデルとメッセージ モデルです。

同じ通知ストリームを共有したい: どちらも「通知」行を作成し、ユーザーに表示する必要があります。しかし、通知も親を指すようにしたいです。親オブジェクトを取得できるように、parent_id および parent_class 列を作成することを考えました。しかし、それを行う方法はすでに組み込まれていますか?

ポリモーフィック モデルを調べましたが、ここでの使用方法がよくわかっていないようです。

4

1 に答える 1

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)

次に、通知をクエリして、それをすべての通知のソースとして使用できます。

于 2012-06-09T12:16:17.077 に答える