ActiveSupport::Concern
是否支持一种在构造对象之前或之后运行方法的方法。
例如实现类似
Module Benchmarker
extend ActiveSupport::Concern
before_initialize
@constructed_at = DateTime.now
end
end
(注意:ActiveRecord或ActiveController不需要此功能。只是Rails项目中的通用Ruby类。)
答案 0 :(得分:1)
注意:这将适用于模型或仅继承自ActiveRecord
的那些类。
Rails不支持before_initialize
回调。您可以改用after_initialize回调。但是,在关注中使用它时,您需要在included do..end
块中提及它。例如,以下代码应适用于您的用例:
Module Benchmarker
extend ActiveSupport::Concern
included do
after_initialize do |subject|
p "I'm in after_initialize"
end
end
end
有关included
挂钩如何工作的更多详细信息,请参考this answer。