【问题标题】:Rails Console - Deprecation Notices After Updating GemsRails 控制台 - 更新 Gem 后的弃用通知
【发布时间】:2022-06-11 02:10:18
【问题描述】:

我在我的 rails 6 项目上运行了 bundler update,现在在运行 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!

Ruby 版本:3.1.2

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

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    更新:

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

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

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

    multipart-post/lib/composite_io.rb:

    warn "Top level ::CompositeIO is deprecated, require 'multipart/post' and use `Multipart::Post::CompositeReadIO` instead!"
    

    使用者:

    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)
    

    这让我想到了这个问题:https://github.com/lostisland/faraday-multipart/issues/5

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-24
    • 2017-11-08
    • 2018-08-01
    • 2017-09-30
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多