Ruby on rails 红宝石精炼和钩子

Ruby on rails 红宝石精炼和钩子,ruby-on-rails,ruby,refinements,Ruby On Rails,Ruby,Refinements,我正在尝试使用ruby改进来应用rails钩子 我想避免猴子打补丁。当猴子修补时,它也会这样工作 ActiveRecord::Base.class_eval do after_find do # do something with my_method end def my_method # something useful end end 我已经能够通过这样做获得类方法: module ActiveRecordRefinements ref

我正在尝试使用ruby改进来应用rails钩子

我想避免猴子打补丁。当猴子修补时,它也会这样工作

ActiveRecord::Base.class_eval do
  after_find do 
     # do something with 
     my_method
  end

  def my_method
    # something useful
  end
end
我已经能够通过这样做获得类方法:

module ActiveRecordRefinements
  refine ActiveRecord::Base.singleton_class do
    def my_method
     #something cool
    end
  end
end
但我不能带钩。我尝试使用了
self.used(klass)
,但似乎无法获得正确的语法

欢迎任何帮助


谢谢。

您为什么不使用ActiveSupport回调?
看看这里:

你不需要在
ActiveRecord::Base
上调用
#singleton\u类,因为优化是单例的。我正在尝试添加到AR的DSL中。类似于“class Foo