是否可以为单个 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
最佳答案
你可以通过在创建对象后立即向对象添加回调来做类似的事情,就像你说的那样,猴子修补默认的 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
关于ruby-on-rails - 将保存回调添加到单个 ActiveRecord 实例,可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2494203/