2016-09-19 9 views
3

私は自分のレールアプリをアップデートしていますので、代わりにalias_method_chainを使用しているメソッドをリファクタリングする必要があります。alias_method_chainは廃止予定です - Rails 5のアップグレード

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にリファクタリングすることができますまたはいくつかの他の方法は私が感謝を知っている方法を知っている場合は、次のメッセージは、私がリファクタリングしようとしているヘルパーです。ここRailsの5によって推奨されているように、モジュール#プリペンドを使用することを言います君は!

答えて

1

これは私のために働く。私は彼らがなぜalias_method_chainを使うのを知っていませんが、これは同じ機能を使って非推奨警告を取り除きます。

module ActiveSupport 
    module NumberHelper 
    def number_to_delimited(number, options = {}) 
     number.to_s.sub(/^Infinity$/, "∞") 
    end 
    end 
end 
0

この場合、この解決策は問題ありません。元の方法を参考にしてサルのパッチを作成する必要がある場合は、パッチを適用する前にエイリアスを作成してください。

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 
関連する問題