未知的参数错误" -p"部署到heroku时

时间:2014-07-30 23:23:19

标签: ruby-on-rails ruby api heroku trollop

我们正在向Heroku部署rails应用程序。应用程序应该使用Trollop Gem作为命令行解析器进行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

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

2 个答案:

答案 0 :(得分:0)

提供未定义的参数时,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

答案 1 :(得分:0)

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

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

所以我刚刚初始化了一个opts哈希并插入了键值对而没有更多问题。