嗨,我正在尝试从 quickbooks 获取 Oauth2 访问权限,但我在来自 Rails 服务器的命令提示符下收到此警告,但没有任何反应服务器只是不断加载相同的警告;
这是给出错误的行(位于 gem 中);
def escape(value)
URI::escape(value.to_s, OAuth::RESERVED_CHARACTERS)
rescue ArgumentError
URI::escape(value.to_s.force_encoding(Encoding::UTF_8), OAuth::RESERVED_CHARACTERS)
end
我查看了其他有关此错误的抱怨,并尝试将 URI::escape()
命令替换为 CGI::escape()
,但随后出现此错误;
谁能告诉我如何摆脱这个错误并找到一个可行的替代方案?
我的 Ruby 版本:ruby 2.7.2p137
我的 Rails 版本:Rails 6.1.4
谢谢。
答案 0 :(得分:0)
如果您只需要 URI.escape
的有效实现,您可以自己重新实现它:
# config/initializers/uri.rb
module URI
def self.escape(*args)
DEFAULT_PARSER.escape(*args)
end
end
这将有效地消除警告并将 escape
调用委托给默认解析器,这也适用于 Ruby 3。
请注意,这只是一个快速消除警告的补丁。从长远来看,您应该找到过时 gem 的替代品。