gpt4 book ai didi

ruby-on-rails - 将保存回调添加到单个 ActiveRecord 实例,可以吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:51 26 4
gpt4 key购买 nike

是否可以为单个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com