alias_method_chain 已弃用 - Rails 5 升级
alias_method_chain is deprecated - Rails 5 upgrade
我正在更新我的 rails 应用程序,我需要重构使用 alias_method_chain
的方法,因为它已被弃用。该消息说要按照 Rails 5 的建议使用 module#prepend。这是我要重构的助手:
module ActiveSupport
module NumberHelper
def number_to_delimited_with_unicode_infinity(number, options = {})
result = number_to_delimited_without_unicode_infinity(number, options)
result.sub(/^Infinity$/, "∞")
end
alias_method_chain :number_to_delimited, :unicode_infinity
end
end
如果有人知道如何使用 super
或其他方式进行重构,请告诉我,谢谢!
这对我有用。我不知道他们为什么一开始就使用 alias_method_chain
但这摆脱了具有相同功能的弃用警告。
module ActiveSupport
module NumberHelper
def number_to_delimited(number, options = {})
number.to_s.sub(/^Infinity$/, "∞")
end
end
end
在你的情况下,这个解决方案似乎没问题。如果你必须有一个参考原始方法的猴子补丁,那么你可以在打补丁之前创建一个别名:
module ActiveSupport
module NumberHelper
# create alias to original method
alias :original_number_to_delimited :number_to_delimited
def number_to_delimited(number, options = {})
result = original_number_to_delimited(number, options)
result.sub(/^Infinity$/, "∞")
end
end
end
我正在更新我的 rails 应用程序,我需要重构使用 alias_method_chain
的方法,因为它已被弃用。该消息说要按照 Rails 5 的建议使用 module#prepend。这是我要重构的助手:
module ActiveSupport
module NumberHelper
def number_to_delimited_with_unicode_infinity(number, options = {})
result = number_to_delimited_without_unicode_infinity(number, options)
result.sub(/^Infinity$/, "∞")
end
alias_method_chain :number_to_delimited, :unicode_infinity
end
end
如果有人知道如何使用 super
或其他方式进行重构,请告诉我,谢谢!
这对我有用。我不知道他们为什么一开始就使用 alias_method_chain
但这摆脱了具有相同功能的弃用警告。
module ActiveSupport
module NumberHelper
def number_to_delimited(number, options = {})
number.to_s.sub(/^Infinity$/, "∞")
end
end
end
在你的情况下,这个解决方案似乎没问题。如果你必须有一个参考原始方法的猴子补丁,那么你可以在打补丁之前创建一个别名:
module ActiveSupport
module NumberHelper
# create alias to original method
alias :original_number_to_delimited :number_to_delimited
def number_to_delimited(number, options = {})
result = original_number_to_delimited(number, options)
result.sub(/^Infinity$/, "∞")
end
end
end