我在rails 2.3.5上使用ruby。
我有用户实例。在运行时取决于某些条件,我想为此实例添加一个after_save回调。
另一个问题是这个after_save应该以块或proc作为参数。
我想要的是这样的。这是伪代码。
user = User.first
proc = Proc.new做 把'这是foo' 端
user.after_save proc
答案 0 :(得分:0)
我就是这样做的。在模型中我会:
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" }
答案 1 :(得分:0)
@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