2016-07-27 37 views
0

有什麼區別 v self.downrename_column有什麼區別?self.up v self.down(Rails)中`rename_column`和

我有一個遷移文件,它看起來象下面這樣:

def self.up 
    rename_column :posts, :title, :subject 
end 

def self.down 
    rename_column :posts, :subject, :title 
end 

到現在爲止我在遷移文件中只看到def change。不是self.upself.down

我可以看到這是如何明智的,如果一個是remove_column,一個是add_column - 模擬rename_column,具有能夠改變數據類型的額外好處等

,但我沒有看到爲什麼rename將需要兩次。這裏發生了什麼?

回答

1

rename_column用於updown,因爲不需要更改名稱以外的任何列詳細信息。 titlesubject都是相對較短的基於文本的值。如果您刪除了一列並添加了新列,那麼您只需使用相同的數據類型和其他屬性即可。在這種情況下重命名列更爲方便。

僅僅因爲你在更改專欄並不意味着你必須改變它的一切。