Неизвестный аргумент Ошибка "-p" при развертывании на героку
Мы внедряем приложение для рельсов в Heroku. Приложение должно совершать вызов API YouTube, используя Trollop Gem в качестве анализатора командной строки. Мы продолжаем получать эту ошибку обратно.
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 ответа
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 и вставил пары ключ-значение, и больше никаких проблем.