0
所以我有一个对象,我想定义一个生命周期挂钩,如before_create,after_create等定义自定义对象生命周期的钩子红宝石
我想打电话给这个after_retire并将它安装,所以我可以做以下:
class User < ActiveRecord::Base
include Active
after_retire :method
def method
#do stuff
end
end
到目前为止,我有一个模块的设置,像这样,但我不断收到一个未定义的方法在我的用户模型after_retire错误。
module Active
extend ActiveSupport::Concern
included do
define_callbacks :retire
set_callback :retire, :after, :after_retire
default_scope { where(:retired => false) }
scope :retired, where(:retired => true)
end
def retire!
run_callbacks :retire do
update_attribute :retired, true
update_attribute :retired_at, Time.now.to_datetime
end
end
end
我该如何设置它?
此外,您应该使用update_attributes(retired:true,retired_at:Time.now)以避免不必要的额外数据库调用。 – 2014-11-14 23:44:35