我们正在向Heroku部署一个rails应用程序。应用程序应该使用Trollop作为命令行解析器进行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更奇怪的是,它一小时前就开始工作了,而现在却不行了。有人有什么想法吗?这似乎在任何地方都没有记录。
发布于 2014-07-30 23:28:17
当提供未定义的参数时,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?
发布于 2014-08-21 04:18:59
是的,我也有同样的问题。未知参数-p和500个内部错误。
我决定放弃Trollop,只是硬编码我自己的选择。
因此,我只是初始化了opts、散列和插入键值对,这样就没有问题了。
https://stackoverflow.com/questions/25048577
复制相似问题