2

次のクラスがある場合:

class Bar
  include Mongoid::Document
  embeds_many :foos, :cascade_callbacks => true
end

class Foo
  include Mongoid::Document
  embedded_in :bar, :inverse_of => :foos
end

Foo が保存/更新されるたびに、その親 Bar が自動的に保存されるようにすることは可能ですか (具体的には、独自の「before_save」コールバックを呼び出します)。Bar のメソッドを Foo に公開せずにこれを行いたいと考えています。

つまり、これを解決策として行わない:

class Bar
  include Mongoid::Document
  embeds_many :foos, :cascade_callbacks => true

  def update_stuff_on_bar
   # Stuff
  end
end

class Foo
  include Mongoid::Document
  embedded_in :bar, :inverse_of => :foos
  before_save :update_parent

  def update_parent
    bar.update_stuff_on_bar # <- We're having to use internals of Bar inside Foo. 
  end
end
4

0 に答える 0