我们有一个 Rails 应用程序,其中 after_create 从初始化程序动态添加到 ActiveRecord 模型。
我们已经尝试了 instance_eval
Foo.instance_eval do
send "after_create", lambda{|r| r.some_method}
end
和 class_eval
Foo.class_eval do
after_create lambda{|r| r.some_method}
end
Foo.new._create_callbacks
在创建它们之后运行时,它会返回两个回调。
在向 Rails 服务器发出请求后,两个回调消失了。
这个问题只发生在开发中。分期和生产工作正常。
当在回调中设置config.cache_classes = true
时,development.rb
回调将持续存在并且不会消失。
我们已经在其他应用程序中复制了这段代码,它工作正常,所以可能是配置问题。
注意:我们正在使用带有lvh.me的子域
- 导轨 3.1.1
- 红宝石 1.9.2-p180
谢谢 :)