警告:不推荐使用最后一个参数作为关键字参数

hon*_*ney 9 json ruby-on-rails

  json: 1.8.6
  ruby: 2.7.2
  rails: 6.0.3.6
Run Code Online (Sandbox Code Playgroud)

我的应用程序中经常出现以下错误

 /Users/***/.rvm/gems/ruby-2.7.2/gems/json-1.8.6/lib/json/common.rb:155: warning: Using the last argument as keyword parameters is deprecated
Run Code Online (Sandbox Code Playgroud)

当我搜索此错误时,我得到了一个解决方案,即我需要更新我的 json gem 版本,但这里我对 json-1.8.6 版本有许多其他依赖项,所以我无法更新 gem。当我显式更新 common.rb 文件中的代码时。

 def parse(source, opts = {})
    Parser.new(source, opts).parse
 end
 
Run Code Online (Sandbox Code Playgroud)

我已将上面的代码更新如下

def parse(source, opts = {})
  Parser.new(source, **opts).parse
end
Run Code Online (Sandbox Code Playgroud)

它工作正常,没有任何错误,但我认为这不是禁用警告的正确方法。

hon*_*ney 5

配置/初始化器/json.rb

 module JSON
   module_function

   def parse(source, opts = {})
     Parser.new(source, **opts).parse
   end
 end
Run Code Online (Sandbox Code Playgroud)