2013-07-06 11 views

Antwort

11

Die Methode up sollte von einer down-Methode begleitet werden, die zum Rückgängigmachen der Änderungen der Migration verwendet werden kann. wenn Sie das Beispiel in Ihrer Frage schreiben mit bis zum Beispiel, und nach unten würden Sie den folgenden Code benötigen:

class CreateTweets < ActiveRecord::Migration 
    def up 
    create_table :tweets do |t| 
     t.string :status 
     t.integer :zombie_id 

     t.timestamps 
    end 
    end 

    def down 
    drop_table :tweets 
    end 
end 

Die change Methode, auf der anderen Seite kann automatisch durch Rails umgekehrt werden, so gibt es keine Notwendigkeit, manuell Erstellen Sie eine down Methode.

change war einführen up und down zu ersetzen, weil die meisten down Methoden leicht auf der Grundlage der up Verfahren vorhergesagt werden konnte (im Beispiel oben drop_table ist eindeutig das Gegenteil von create_table).

In Situationen, in denen der umgekehrte Vorgang nicht automatisch abgeleitet werden, können Sie entweder die up und down Methoden oder die reversible Methode von Ihrem change Methode aufrufen.

Weitere Informationen finden Sie unter sections 3.6 - 3.7 of the Rails migration guide.