Ruby’require’正在抛出NoMethodError,堆栈跟踪显示Windows机器上的Unix路径

试图运行ruby脚本,但它在’require’语句中失败,抛出一个奇怪的错误:

码:

require "rubygems" require "bundler/setup" require_relative "plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb" require "newrelic_plugin" module PivotalAgent NewRelic::Plugin::Config.config_file=File.dirname(__FILE__) + "/config/newrelic_plugin.yml" NewRelic::Plugin::Run.setup_and_run end 

命令:

 ruby pivotal_agent.rb 

错误:

 /usr/share/rubygems/rubygems/path_support.rb:78:in `path=': undefined method `+' for nil:NilClass (NoMethodError) from /usr/share/rubygems/rubygems/path_support.rb:34:in `initialize' from /usr/share/rubygems/rubygems.rb:325:in `new' from /usr/share/rubygems/rubygems.rb:325:in `paths' from /usr/share/rubygems/rubygems.rb:348:in `path' from /usr/share/rubygems/rubygems/specification.rb:872:in `dirs' from /usr/share/rubygems/rubygems/specification.rb:750:in `stubs' from /usr/share/rubygems/rubygems/specification.rb:938:in `find_inactive_by_path' from /usr/share/rubygems/rubygems.rb:186:in `try_activate' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:126:in `rescue in require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:39:in `require' from pivotal_agent.rb:2:in `' 

可能导致这种想法的任何想法? 我最初的预感是,它与文件路径有关,它正在为Unix格式化,而这是在Windows机器上运行,但我已经将Ruby添加到PATH,所以我不知道它为什么会看起来而不是实际安装Ruby的地方(C:\ Ruby22-x64)。

编辑:澄清一下,第一个要求(对于’rubygems’)不会抛出错误,但是其他要求和require_relative都抛出类似的错误。

不是100%肯定为什么,但从命令的开头删除’ruby’修复它。 所以只是跑步

 my_script.rb 

工作正常,但正在运行

 ruby my_script.rb 

给出了上面的堆栈。