pup*_*eno 5 ruby activerecord ruby-on-rails
是否可以向单个ActiveRecord实例添加回调?作为进一步的约束,这是继续使用库,因此我无法控制该类(除了猴子修补它).
这或多或少是我想要做的:
def do_something_creazy
message = Message.new
message.on_save_call :do_even_more_crazy_stuff
end
def do_even_more_crazy_stuff(message)
puts "Message #{message} has been saved! Hallelujah!"
end
Run Code Online (Sandbox Code Playgroud)
您可以通过在创建对象后立即向对象添加回调来执行类似的操作,就像您所说的那样,修补默认的AR before_save方法:
def do_something_ballsy
msg = Message.new
def msg.before_save(msg)
puts "Message #{msg} is saved."
# Calls before_save defined in the model
super
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1928 次 |
| 最近记录: |