Rails Console - 更新 Gems 后的弃用通知

Pre*_*ays 20 ruby ruby-on-rails

我运行bundler update了 Rails 6 项目,现在在运行时看到以下弃用通知rails console。有人知道哪个是不兼容的 gem/ruby 版本的令人讨厌的组合吗?

弃用通知:

root@1ddbacaf4a69:/app# bin/rails c
Top level ::CompositeIO is deprecated, require 'multipart/post' and use `Multipart::Post::CompositeReadIO` instead!
Top level ::Parts is deprecated, require 'multipart/post' and use `Multipart::Post::Parts` instead!
Run Code Online (Sandbox Code Playgroud)

红宝石版本:3.1.2

Google和github并没有得到太多的帮助。我不想开始一次禁用一个宝石来解决这个问题。

Pre*_*ays 22

更新:

太长了;此错误最常见的原因是faraday-multipart依赖于multipart-post. faraday-multipart已经发布了一个修复程序 - 只需将 gem 升级到 1.0.4 或更高版本即可解决此问题。

===============

进一步挖掘,我发现了有问题的代码:

多部分帖子/lib/composite_io.rb:

warn "Top level ::CompositeIO is deprecated, require 'multipart/post' and use `Multipart::Post::CompositeReadIO` instead!"
Run Code Online (Sandbox Code Playgroud)

正在使用的是:

Gemfile.lock:

    faraday (1.10.0)
      faraday-em_http (~> 1.0)
      faraday-em_synchrony (~> 1.0)
      faraday-excon (~> 1.1)
      faraday-httpclient (~> 1.0)
      faraday-multipart (~> 1.0)
    ...
    faraday-multipart (1.0.3)
      multipart-post (>= 1.2, < 3)
Run Code Online (Sandbox Code Playgroud)

这导致我遇到这个问题:https://github.com/lostisland/faraday-multipart/issues/5

底线答案 - 有一个解决方案,应该在几天内合并并发布。bundle update再次,当法拉第库更新时,这种情况应该会消失。

  • 它已经合并了 https://github.com/lostisland/faraday-multipart/pull/6 (2认同)
  • 我确认它已在“faraday-multipart”“1.0.4”中修复 (2认同)
  • 谢谢,“捆绑更新法拉第多部分”稍微提高了我的理智!:) (2认同)