#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
, то gemsendgrid-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.