我正在使用Rails 2.3.5开发一个Web应用程序。 我在lib /文件夹中定义了模块,如下所示。
module TestModule
class Basic < ApplicationController
def show
p "module method"
end
end
end
和load_paths在此库的environment.rb中描述如下
Rails::Initializer.run do |config|
config.load_paths += %W[ #{RAILS_ROOT}/lib/test_module ]
end
但暂时,我想在不编辑lib方法的情况下覆盖上述方法。 所以,我将覆盖方法放在“config / initializers / override_show.rb”中,如下所示。
require_dependency "lib/test_module/basic.rb"
module TestModule
class Basic
def show
p "new method"
end
end
end
没有“require_dependency”,我收到错误,因为没有加载位于lib /文件夹中的原始方法,所以我在覆盖TestModule之前放了“require_dependency”。
在上面的代码中,新方法只在激活服务器后才能正常工作一次。 但是,永远不会再调用新方法,并调用旧方法。 当我重新启动rails服务器时,新方法将只调用一次。
请给我一些关于如何覆盖lib文件夹中的方法的建议。 非常感谢你提前。
答案 0 :(得分:0)
是否有可能只是将config / initializers / override_show.rb中的代码附加到lib / test_module / basic.rb?