2016-09-19 10 views
3

Я обновляю приложение rails, и мне нужно реорганизовать метод, который использует alias_method_chain, потому что он устарел. В сообщении говорится, использовать модуль # PREPEND в соответствии с рекомендациями Rails 5. Вот помощник, который я пытаюсь реорганизовать: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 или каким-либо другим способом, дайте мне знать, спасибо вы!

ответ

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 

 Смежные вопросы

  • Нет связанных вопросов^_^