将我的 Rails 应用程序从 Rails 6.0.1 更新到 Rails 7.0.2.3 后
我遇到了宝石“回形针”的问题,'~> 6.1.0'
在应用程序中使用它时出现错误:
ActionView::Template::Error (undefined method `escape' for URI:Module
Did you mean? escape_once):
在我的应用程序中的用法:
<%= image_tag current_user.image.url('med'), width: "36px" %>
当 ruby gemfile 本身存在错误时如何解决此问题,提前致谢。
这种情况的解决方案是对库中缺少的方法进行猴子修补。
在初始化文件夹中添加一个 ruby filke uri_escape.rb :
添加猴子修补行:
module URI
def self.escape(url)
encode_www_form_component(url)
end
end
就完成了。
如果您因现已弃用的“回形针”gem 而遇到此问题,并且您还不想切换到 ActiveStorage,则有一个解决方案: kt-paperclip gem (https://rubygems.org/gems/kt-paperclip) 是 Paperclip 的一个分支。
他们已经修复了此 URI 问题,切换到 kt-paperclip 将解决上述回形针错误,并允许您继续,而无需迁移到 ActiveStorage。