【发布时间】:2016-02-29 13:48:06
【问题描述】:
我们的对象有几个定义的生命周期回调方法。在触发回调的每个方法中,都会创建一个 Event 对象用于跟踪目的。生命周期事件定义如下:
@@LIFECYCLE_CALLBACKS = [
:send_email,
:start_time,
:end_time,
:review
].each do |callback|
define_model_callbacks callback
define_method callback do
run_callbacks callback do
#The Event object is created here
track_lifecycle_action callback
end
end
end
在一些生命周期方法中,我需要向 Event 对象添加额外的信息。我想像这样将块附加到生成的回调中:
after_send_email :add_additional_details_to_event
如何修改我的代码以始终将在 run_callbacks 块内创建的 Event 对象传递到 after_callback 回调正在运行的块的上下文中?我不认为我可以假设 self.events.last 将始终返回正确的 Event 对象。
【问题讨论】:
标签: ruby-on-rails ruby activemodel