Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未知参数错误“-p";部署到heroku时_Ruby On Rails_Ruby_Api_Heroku_Trollop - Fatal编程技术网

Ruby on rails 未知参数错误“-p";部署到heroku时

Ruby on rails 未知参数错误“-p";部署到heroku时,ruby-on-rails,ruby,api,heroku,trollop,Ruby On Rails,Ruby,Api,Heroku,Trollop,我们正在向Heroku部署rails应用程序。应用程序应该使用TrollopGem作为命令行解析器来调用youtube api。我们一直在找回这个错误 2014-07-30T23:17:57.526014+00:00 app[web.1]: Error: unknown argument '-p'. 2014-07-30T23:17:57.526020+00:00 app[web.1]: Try --help for help. 2014-07-30T23:17:57.526541+00:00

我们正在向Heroku部署rails应用程序。应用程序应该使用TrollopGem作为命令行解析器来调用youtube api。我们一直在找回这个错误

2014-07-30T23:17:57.526014+00:00 app[web.1]: Error: unknown argument '-p'.
2014-07-30T23:17:57.526020+00:00 app[web.1]: Try --help for help.
2014-07-30T23:17:57.526541+00:00 app[web.1]: Completed 500 Internal Server Error in 7466ms
这就是我们的Trollop代码的样子

def self.youtube_search(query)
    youtube_service_api_name = "youtube"
    youtube_api_version = "v3"
    # opts = HTTParty.get("https://www.youtube.com/results?search_query=russia")
    opts = Trollop::options do
      opt :q, 'Search term', :source => String, :default => query
      opt :maxResults, 'Max results', :source => :int, :default => 25
    end

更奇怪的是,它一小时前还在工作,现在却不工作了。有人有什么想法吗?这似乎在任何地方都没有记录

Trollop在提供未定义的参数时将失败。在代码中定义了
-q
选项,但未定义
-p

以下是
parse
方法中的相关行:

trollop.rb

339       unless sym
340         next 0 if ignore_invalid_options
341         raise CommandlineError, "unknown argument '#{arg}'" unless sym
342       end

至于它以前为什么工作,也许你当时通过了
-q
,现在却不小心通过了
-p

是的,我也遇到了同样的问题。未知参数-p和500内部错误

我决定放弃Trollop,只是硬编码我自己的选择


因此,我只是初始化了一个opts散列并插入了键值对,没有其他问题。

我们尝试将:p添加到opt行,而不是:q,但它给出了一个未知参数-e错误。正确的方法是什么?