Rails 怎么正确的重写 lib 中定义的 module 内的方法?

luoguanzhong · 2014年09月22日 · 最后由 luoguanzhong 回复于 2014年09月27日 · 2024 次阅读

我想用 class_eval 重写 lib 文件夹中,定义的 method 中的类中的方法,

lib/a.rb,文件:

module A
   class B
     def mm
     end
   end
  end
end

请问各位,下面的重写类方法的 code 放在哪里啊?不胜感谢!!

A::B.class_eval do 
  alias_method :old_mm, mm
  def mm
  end
end

你的写法是对的,不过 alias_methd 方法的第二个参数错了,要用 Symbol。 你写成了一个变量。 alias_method :old_mm, :mm

lib 是你的,直接写在 lib 里面就行了啊。不到穷尽所有其他方法,绝不能写这样的代码。

@filetype @billy ,多谢,最终写在 initializer 中了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号