我写了一个需要bar.rb
的任务foo.rb
。我可以通过在正常的 ruby 环境中require './bar'
来要求.rb
文件。
当我通过 rails runner lib/tasks/foo.rb
将脚本作为 rails 应用程序的任务运行时,它会失败并出现此错误。
"require":无法加载此类文件 -- ./foo (加载错误)
我也尝试了require 'lib/task/broker'
,但它最终出现同样的错误。
要加载我添加的文件,config/application.rb
此代码。
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
使用 rails runner
时,我应该如何要求同一目录中的.rb
文件?
使用 require_relative
通过相对路径加载文件。
例:
require_relative './bar'