为什么我的 rest-client 请求会引发错误?

Why does my rest-client request raise an error?

当我发出 rest-client 请求时出现以下错误:

<internal:D:/softwares/Ruby30-x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:96:in `require': D:/softwares/Ruby30-x64/lib/ruby/gems/3.0.0/gems/mime-types-3.1/lib/mime/types/logger.rb:28: _1 is reserved for numbered parameter (SyntaxError)

这是我的代码:

require 'rest-client'
response = RestClient.get 'https://www.linkedin.com/feed/'
puts response

任何人都可以在 return 中解决这个问题吗?

您遇到了 gem 版本控制问题。当您需要 rest-client 时得到的错误是:

.../mime-types-3.1/.../logger.rb:28: _1 is reserved for numbered parameter (SyntaxError)

这是gemmime-types中的问题,rest-client依赖。 Ruby 引入了语法更改以支持 'numbered parameters' 块中的 _1, _2, ... 保留字。该更改意味着命名变量匹配该样式 (_1, _2, etc.) 的人会在 Ruby 2.7 中收到警告。在 Ruby 3.0(您正在使用的)中,现在会导致语法错误。

您使用的 mime-types 版本 (3.1) 必须具有此类代码;它在 Ruby 3.0 之前有效,但现在中断了。好消息是 mine-types 的最新版本 3.3.1 可与 Ruby 一起使用 3. 您只需要更新 gem:

D:> gem update mime-types
Updating installed gems
Updating mime-types
Fetching mime-types-3.3.1.gem
Successfully installed mime-types-3.3.1

如果您使用的是捆绑器,您可能需要更改 Gemfile 中的版本并重新运行 bundle install 以触发更新。

对于每个需要加载错误,执行以下命令为 ruby 程序安装 gems。

ruby -S gem install <gem-name>

在我的情况下是。

ruby -S gem install rest-client