我是Ruby的新手。我正在处理以下性质的代码库。
我有一个main/
目录,其中包含我的整个代码库,并且在其中包含以下文件:
main/lib/foo/test1.rb
和
main/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'
语句中的位置,而我的环境却不知道。我该如何解决?
谢谢!
答案 0 :(得分:0)
听起来您有Ruby on Rails应用程序。
鉴于此,您可能不想直接使用ruby
运行任何包含的脚本。 如果设计为直接执行,请尝试使用rails runner path/to/file.rb
(在包含app/
,lib/
,config/
等的目录中运行) )。
但是,如果它位于app/
或lib/
内,则很可能打算从应用程序其他位置的其他脚本中以库的形式加载它……这两个地方都是不寻常的地方独立可执行文件。