情况是这样的 我在 model 的 before_create 中定义一个 after_create 方法,等到 model 保存成功后调用 实例代码如下
class A < ActiveRecord::Base
before_create :method_a
def method_a
self.class.after_create do
puts "calling method_a ........."
end
end
end
如上,会打印 5 次 calling method_a .........
但是
class A < ActiveRecord::Base
before_create :method_a
def method_a
self.class_eval <<-RUBY
def method_b
puts "calling method_a ........."
end
after_create :method_b
RUBY
end
end
只会打印 1 次 calling method_a .........
大家遇到过这种情况么?
实际情况是,我在 rspec 测试中发现的