Ruby on rails 如何在运行时创建after_save回调

Ruby on rails 如何在运行时创建after_save回调,ruby-on-rails,Ruby On Rails,我正在使用RubyonRails 2.3.5 我有一个用户实例。在运行时,根据特定条件,我只想为这个实例添加一个after_save回调 另一个问题是,这个after_保存应该以块或proc作为参数 我想要的是这样的东西。这是psuedo代码 user=user.first proc=proc.new do 写“这是福” 结束 user.after_save proc这就是我要做的。在模型中,我会: attr_accessor :after_save_callback after_save {

我正在使用RubyonRails 2.3.5

我有一个用户实例。在运行时,根据特定条件,我只想为这个实例添加一个after_save回调

另一个问题是,这个after_保存应该以块或proc作为参数

我想要的是这样的东西。这是psuedo代码

user=user.first

proc=proc.new do 写“这是福” 结束


user.after_save proc

这就是我要做的。在模型中,我会:

attr_accessor :after_save_callback

after_save { |record|
  record.after_save_callback.call unless record.after_save_callback.nil?
}
而绑定事件可以类似于:

user = User.first
user.after_save_callback = Proc.new { "actual code" }
@user=user.first

eigen=class最简单的方法可能是在运行前总是有一个after_save回调来检查实例变量是true还是false。如果你能更具体地说明你想做什么,我可以提供一个例子。谢谢,但我正在寻找一个更透明的解决方案。无法更改模型类。
@user = User.first

eigen = class << @user; self; end
eigen.after_save do
  puts @user.email
end

@user.save
# prints user.email


@another = User.find(100)
@another.save
# does not print user.email