警告:在 ruby​​ 2.7.2 中使用回形针时,URI.escape 已过时

hon*_*ney 14 paperclip ruby-2.7 ruby-on-rails-6.1

   ruby - 2.7.2
   rails - 6.0
   paperclip - 6.1.0
Run Code Online (Sandbox Code Playgroud)

在将回形针 gem 与 ruby​​ 2.7.2 一起使用时,我在控制台中收到以下警告

   /Users/***/.rvm/gems/ruby-2.7.2/gems/paperclip-6.1.0/lib/paperclip/url_generator.rb:68: warning: URI.escape is obsolete
Run Code Online (Sandbox Code Playgroud)

我知道回形针没有维护者,并且它已被弃用,但我无法使用活动存储,因为我发现回形针是实现附件的最简单和最好的方法。我该如何解决这个警告?

小智 9

当您说“解决”警告时,您不太清楚什么是可接受的解决方案。但你可以:

  • a) 只要您坚持使用这些版本的 Ruby 和 Rails,就可以忽略该警告,因为这并不意味着有任何问题。
  • b)编写一些代码来抑制这个特定的警告,尽管我可能不会这样做,因为你会增加忘记这个问题的机会,然后最终会出现一个更严重和时间敏感的问题,如果您将系统的一部分升级到URI.escape不再可用的位置。
  • c) 执行我在 Rails 应用程序中所做的操作,即切换到 Paperclip 的分叉和维护版本KT-Paperclip。如果您想更新到解决这些弃用警告的最低版本号,您可以选择6.4


小智 6

好吧,正确的答案是按照 @UptDogTT 的建议为你的代码库做一些更好的事情......但如果你只需要一个完成的答案,这个猴子补丁会URI.escape使用等效的功能添加回来。将其添加为初始化程序:

module URI
  def self.escape url
    URI::Parser.new.escape url
  end
end
Run Code Online (Sandbox Code Playgroud)