自定义 Ruby 模块的加载错误



我是 Ruby 的新手。我正在处理以下性质的代码库。

我有一个包含整个代码库的main/目录,其中有以下文件:main/lib/foo/test1.rbmain/app/bar/test2.rb

main/app/bar/test2.rb里面有这样一句话:require 'test1'

但是,如果我在main/目录中并且运行ruby main/app/bar/test2.rb则会出现以下错误:require': cannot load such file -- access_control (LoadError)

现在,在谷歌搜索时,我认为这与/config/application.rb和添加行有关:config.autoload_paths += Dir["#{config.root}/lib", "#{config.root}/lib/**/".我这样做,但它似乎没有任何区别。

大概我的生产环境知道在require 'test1.rb'语句中查找的位置,而我的环境则不知道。我该如何解决这个问题?

谢谢!

听起来你有一个Ruby on Rails应用程序。

鉴于此,您可能不想直接使用ruby运行任何包含的脚本。如果它被设计为直接执行,请尝试使用rails runner path/to/file.rb运行它(从包含app/lib/config/等的目录中(。

但是,如果它在app/lib/内部,则更有可能打算从应用程序中其他地方的其他脚本加载为库......这些地方都是保留独立可执行文件的不寻常位置。

最新更新