有型号价格(型号/ price.rb)
class Price
end
同样在lib目录中,我有import / detector / price.rb文件
class Import::Detector::Price
end
Lib目录通过
添加到自动加载路径config.autoload_paths += Dir["#{config.root}/lib/**/"]
所以运行Price.new我得到错误
无法自动加载常量价格,预期lib / import / detector / price.rb来定义它。
导入:: Detector :: Price.new就可以了
我的错误是什么?
UPD。 最有趣的
此文件还有/ car / property / price.rb
class Car::Property::Price
end
一切都还可以。 Car :: Property ::价格可用。
答案 0 :(得分:1)
尝试
config.autoload_paths += Dir["#{config.root}/lib"]
而不是
config.autoload_paths += Dir["#{config.root}/lib/**/"]
使用**,Dir将返回lib下的每个目录,并将它们全部(作为根目录)放在加载路径中。它应该只是加载路径中的主要lib目录,因为rails将使用命名空间来计算子目录。