Joe*_*rns 16 activerecord ruby-on-rails callback
现在我无法在这里找到一种在第1行和第2行之间生成回调的方法:
f = Foo.new
f.some_call
f.save!
Run Code Online (Sandbox Code Playgroud)
有没有办法模拟什么是有效的after_new回调?现在我正在使用after_initialize但是使用它有潜在的性能问题,因为它会触发很多不同的事件.
hdo*_*rio 42
您可以使用after_initialize回调
# app/models/foo.rb
class Foo < ActiveRecord::Base
after_initialize :some_call
def some_call
puts "Who you gonna call?"
end
end
# rails console
> foo = Foo.new # => "Who you gonna call?"
> foo = Foo.first # => "Who you gonna call?"
Run Code Online (Sandbox Code Playgroud)
当心after_initialize每次触发的ActiveRecord做Foo.new(调用像new,find,first等等)看到的Rails指南
所以你可能想要这样的东西 after_initialize :some_call, :if => :new_record?
# app/models/foo.rb
class Foo < ActiveRecord::Base
after_initialize :some_call, :if => :new_record?
def some_call
puts "Who you gonna call?"
end
end
# rails console
> foo = Foo.new # => "Who you gonna call?"
> foo = Foo.first
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6864 次 |
| 最近记录: |