我正在尝试通过创建可以包含在我们的application.rb中的小配置类来简化我们的配置。
lib / logging.rb
class << Logging
def configure(config)
# ... configure logging stuff
end
end
application.rb
require 'lib'
module MyApp
class Application < Rails::Application
Logging.configure(config)
end
end
问题是如果我不使用require "lib"
,那么我会收到Undefined Constant Logging
错误。但如果我试图要求它,我会得到:
bin/rails:6: warning: already initialized constant APP_PATH
/opt/qtip/bin/rails:6: warning: previous definition of APP_PATH was here
我能够让它发挥作用的唯一方法就是这样做,这是非常有限的。
config.autoload_paths = %w(lib)
config.after_initialize do
::Logging.configure(config)
end
答案 0 :(得分:0)
您的班级声明错误。
相反
class << Logging
你应该使用
class Logging
class << self
def configure(config)
end
end
end