2011-01-17 7 views
10

Jak zmienić następujące metody użyć tap zatrzymać ostrzeżenia jakWycofanie UWAGA: Przedmiot # zawracania została zastąpiona Obiekt # kranu

DEPRECATION WARNING: Object#returning has been deprecated in favor of Object#tap. (called from full_messages at /Users/millisami/apps/pandahr/config/initializers/fix_active_model_full_message.rb:17) :

ActiveModel::Errors.class_eval do 
    # Remove complicated logic 
    def full_messages 
    returning full_messages = [] do 
     self.each_key do |attr| 
     self[attr].each do |msg| 
      full_messages << msg if msg 
     end 
     end 
    end 
    end 
end 

Odpowiedz

14

Generalnie można zastąpić returning linia z niniejszego zaproszenia do tap:

[].tap do |full_messages| 

jednak metoda wygląda to odpowiednik values.compact, więc możesz po prostu zamienić swój kod na ten.

3

Ten komunikat ostrzegawczy może pojawić się po uaktualnieniu starych aplikacji Rails 2. Od Rails Version 2.3.9 funkcja zwracania jądra # została zastąpiona przez kliknięcie Object #, które jest natywne dla języka Ruby 1.8.7. Niestety ten błąd jest często spowodowany starszymi wtyczkami i klejnotami. Dla mnie pomógł zaktualizować wersję Haml z wersji 2.0.x do wersji 3.0.21, a wersja woli_poprzednia z wersji 2.2.x do wersji 2.3.15.

Powiązane problemy