我有一个ror应用程序正在其应用程序中执行以下操作。
Digest::MD5 = Digest::SHA256
这反过来又确保了每当有人调用
Digest::MD5
时,它将用Digest::SHA256
替换结果。我相信这会有一些意想不到的后果,比如运行时问题,很难调试。有没有其他的方法来替代这个方法或者这个方法是正确的? 最佳答案
我觉得很危险。我知道要在md5上使用sha256,但它们绝对不可互操作,而且md5肯定有一些良性的用途,您的一些依赖项可能会使用这些用途。
相反,如果使用md5,为什么不使用around别名发出警告?
class Digest::MD5
alias :orig_hexencode :hexencode
def hexencode(str)
Rails.logger.warn("Hexencode called #{}")
puts caller
orig_hexencode(str)
end
end
关于ruby-on-rails - Application.rb覆盖基本Ruby类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36891378/