Неизвестный аргумент Ошибка "-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 и вставил пары ключ-значение, и больше никаких проблем.

Другие вопросы по тегам