Синтаксическая ошибка, неожиданная метка, ожидающая ‘)’ (SyntaxError)

#ruby-on-rails #ruby #rubygems #syntax-error #sendgrid-ruby

# #ruby-на-рельсах #рубиновый #рубигемы #синтаксическая ошибка #sendgrid-рубиновый

Вопрос:

Окружающая среда

  • Ruby [1.9.3p547]
  • Рельсы [3.2.22.5]
  • sendgrid-ruby [4.0.8]

Я использовал sendgrid-ruby gem в своем приложении всякий раз, когда я запускаю rails server, он выдает мне ошибку ниже, которая исходит от gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17

/.rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid-ruby.rb:1:in `require_relative’: /.rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17 : синтаксическая ошибка, неожиданная метка, ожидание ‘)’ (SyntaxError) def инициализировать(api_key: nil, host: nil, request_head… ^ /.rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17 : Не могу присвоить значение nil … def инициализирует(api_key: nil, host: nil, request_headers: … … ^ / .rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17 : Не могу присвоить значение nil …ialize(api_key: nil, host: nil, request_headers: nil, versio … … ^ / .rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17 : Не удается присвоить значение nil …ost: nil, request_headers: nil, version: nil)

Я проверил тот же файл и ту же строку gem sengrid-ruby. он имеет под строкой

 def initialize(api_key: nil, host: nil, request_headers: nil, version: nil)
 

если я заменю это на ниже, это не даст мне.

 def initialize(api_key, host, request_headers, version)
 

это синтаксическая ошибка версии, связанной с rails или ruby?
Есть и другие ошибки, которые содержат тот же синтаксис в других драгоценных камнях.
Что мне делать с синтаксическими ошибками такого типа?

Ответ №1:

Для аргументов ключевых слов требуется версия Ruby 2.0.0 или выше. https://thoughtbot.com/blog/ruby-2-keyword-arguments

Комментарии:

1. если я использовал версию ruby 1.9.3p547 , то gem sendgrid-ruby также должен принимать версию, основанную на версии ruby. верно?

2. Нет, они написали код с определенной версией ruby

3. Посмотрите на ссылку. Каждая версия имеет определенный REQUIRED RUBY VERSION

4. Я бы попробовал версию 3.0.3 для sendgrid-ruby gem

5. да, я проверил, но посмотрите на это https://rubygems.org/gems/sendgrid-ruby/versions для версии 3.0.4 версия ruby должна быть 2.2 или выше, но для версии gem 3.0.3 версия ruby должна быть выше 0.0.