我有两个类和一个belongs_to
关联:
class User < ActiveRecord::Base
belongs_to :foo
before_update do |user|
self.foo = Foo.create
self.foo.save
end
end
class Foo < ActiveRecord::Base
after_update do |foo|
puts "after update is called"
end
end
当用户更新时,我创建一个foo并保存它。但是当我这样做时,正在调用after_update
中的Foo
回调,据我所知,只有在未创建记录更新时才调用该回调。我做错了什么?
答案 0 :(得分:5)
Foo#after_update
,因为您在创建它之后在foo上调用save
。所以你创建foo
然后更新它。移除对self.foo.save
before_update do |user|
self.foo = Foo.create # this creates foo
self.foo.save # this updates foo
end