在application.rb中不能要求文件

时间:2014-06-26 13:23:19

标签: ruby-on-rails ruby

我正在尝试通过创建可以包含在我们的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

1 个答案:

答案 0 :(得分:0)

您的班级声明错误。

相反

class << Logging

你应该使用

class Logging
  class << self
    def configure(config)
    end
  end
end