我尝试过config.autoload_paths += Dir["#{config.root}/lib/**/"]
,config.eager_load_paths += Dir["#{config.root}/lib/**/"]
但不断收到uninitialized constant
错误。
我认为这与dependency_loading
被禁用有关,因为config.threadsafe!
现在是 Rails 4 中的默认设置。
那么从 /lib 目录急切/自动加载内容的正确方法和线程安全方法是什么?
更新:/lib 结构
库/car.rb:
module Car
CAR_TYPES = %w[volvo saab]
end
库/汽车/volvo.rb:
module Car
class Volvo
end
end
抛出的错误是NameError (uninitialized constant Car::CAR_TYPES)
更新2 rails c
::
Car.class
=> Module
Car::CAR_TYPES
=> NameError: uninitialized constant Car::CAR_TYPES
更新 3:有趣的是,Car::Volvo.new
有效,但 Car::CAR_TYPES 无法引用。