1
我正在創建一個gem,它在ActiveRecord類中創建類似before_update_filter的鉤子。 爲此,我必須創建一個模塊UpdateFilter,如下所示:如何動態地實現rails的ActiveRecord類的after_save鉤子
module UpdateFilter
def before_update_filter(*args)
puts self #in class scope
self.set_callback(:save, :before, args[0].to_sym)
end
end
而在intializers我做
ActiveRecord::Base.extend UpdateFilter
確定。現在所有以上工作正常。但是,只有當實例的某些屬性發生更改時,我纔想要set_callbacks,並且我無法訪問before_update_filter方法中的屬性,因爲它在類範圍內。
作爲一個總結,我想實現hook like。我希望它能清除我想要做的事情。
before_update_filter :instance_mthod_name, :attr_prams => [:name, :rating]
現在我該怎麼實現呢?