自定义Ruby模块的LoadError

时间:2018-08-20 16:09:37

标签: ruby-on-rails 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'语句中的位置,而我的环境却不知道。我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:0)

听起来您有Ruby on Rails应用程序。

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

但是,如果它位于app/lib/内,则很可能打算从应用程序其他位置的其他脚本中以库的形式加载它……这两个地方都是不寻常的地方独立可执行文件。