0

has_many/belongs_to 関係を持つ 2 つのモデル (祖先の宝石を使用したツリー構造) がありBoardます。Category

新しい Board インスタンスを作成すると、自動的にルート カテゴリが作成されます。Board after_save コールバックでそれを行います。

after_create do 
  categories.create(name: "Main Category", description: nil)
end

私の他の質問で、私は提案を得ました:

外部モデル/クラスでコールバックを使用することはお勧めできません。カテゴリは Board の外部にあるため、Board はプライベート スペースと想定されるコールバックで Category を呼び出すべきではありません。代わりに、BoardsController の #create でルート カテゴリをボードに追加することをお勧めします。

しかし一方で、fat model/skin controller の原理についても聞いたことがあります。では、この場合のようなロジックの優れたプラクティスは何ですか?

4

1 に答える 1

0

オブザーバーを使用できます。

Observer classes respond to life cycle callbacks to implement trigger-like behavior outside the original class. This is a great way to reduce the clutter that normally comes when the model class is burdened with functionality that doesn't pertain to the core responsibility of the class

于 2013-07-12T19:17:41.370 に答える