语法错误,意外的 tLABEL,期望 ')' (SyntaxError)

Syntax error, unexpected tLABEL, expecting ')' (SyntaxError)

提问人:Vishal 提问时间:4/17/2019 更新时间:4/17/2019 访问量:1834

问:

环境

  • 红宝石 [1.9.3p547]
  • 导轨 [3.2.22.5]
  • sendgrid-ruby [4.0.8]

每当我运行 rails 服务器时,我都会在我的应用程序中使用 sendgrid-ruby gem,它给我以下错误,该错误来自 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: 语法错误,意外的 tLABEL,期望 ')' (SyntaxError) def initialize(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: 无法分配给零...def initialize(api_key:nil,主机:nil, request_headers: ... ... ^ /.rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17: 无法分配给零...ialize(api_key:无,主机:无, request_headers: nil, versio... ... ^ /.rvm/gems/ruby-1.9.3-p547@demo/gems/sendgrid-ruby-4.0.8/lib/sendgrid/client.rb:17: 无法分配给零...ost:无,request_headers:无,版本:无)

我检查了相同的文件和相同的宝石 sengrid-ruby 行。 它低于线

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

如果我把它换到下面,它就不会给我。

def initialize(api_key, host, request_headers, version)

这是Rails或Ruby相关版本的语法错误吗? 还有其他许多错误在其他 gem 中包含相同的语法。 我应该如何处理这种类型的语法错误?

ruby-on-rails rubygems 语法错误 sendgrid-ruby

评论


答:

4赞 Ursus 4/17/2019 #1

关键字参数需要 Ruby 的 2.0.0 或更高版本。https://thoughtbot.com/blog/ruby-2-keyword-arguments

评论

0赞 Vishal 4/17/2019
如果我使用 Ruby 版本,那么 gem 也应该采用基于 ruby 版本的版本。右?1.9.3p547sendgrid-ruby
0赞 Ursus 4/17/2019
不,他们用特定的红宝石版本编写了代码
0赞 Ursus 4/17/2019
查看链接。每个版本都有一个特定的REQUIRED RUBY VERSION
0赞 Ursus 4/17/2019
我会尝试 sendgrid-ruby gem 的 3.0.3 版
0赞 Vishal 4/17/2019
是的,我检查了一下,但对于 3.0.4 版,Ruby 版本应该是 2.2 或更高版本,但对于 GEM 3.0.3 版,Ruby 版本应该高于 0.0 。https://rubygems.org/gems/sendgrid-ruby/versions