![](/img/trans.png)
[英]Upgrade to Rails 5.1, gem `query_reviewer` and deprecated method `alias_method_chain`
[英]alias_method_chain is deprecated - Rails 5 upgrade
我正在更新我的rails應用程序,我需要重構一個使用alias_method_chain
的方法,因為它已被棄用。 消息說使用Rails 5推薦的模塊#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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.