Ruby on rails 回调未调用autosave
我有:Ruby on rails 回调未调用autosave,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,我有: 类父级
类父级
及
class Thing
我希望当我保存Thing
的实例时,它的Parent
也应该被保存。我还希望Parent
的实例在调用_save回调之前具有。事实似乎并非如此
你知道为什么这不起作用吗?我该如何补救?参考文档
如果将:autosave选项设置为true,Rails将保存所有加载的
成员和销毁标记为销毁的成员
保存父对象
我建议你们在保存回调后创建一个新的回调函数来更新父对象,若你们想这样做的话
但OO的方法是创建处理保存对象的类,例如:
class Thing < ActiveRecord::Base
belongs_to :parent, autosave: true
end
由于这一点,你将避免回叫地狱-采取同样的措施
class Thing < ActiveRecord::Base
belongs_to :parent, autosave: true
end
class ThingUpdater
def initialize(thing)
@thing = thing
end
def call(params)
@thing.update_attributes(params)
@thing.parent.update_something
end
end