2012-12-12 43 views
3

我完全理解up/down方法和change方法之間的差異,但我不明白爲什麼Rails似乎產生一個在另一個上。Rails遷移變化與上/下

我剛剛運行下面的命令,並得到一個change方法:

rails generate migration AddUpdaterCreatorToRequest 

大約十分鐘前,我跑到下面,並得到了updown方法:

rails generate migration AddClientPrimaryEngineer 

是什麼給了?兩者都以add爲開始(有一段時間,我想知道是否沒有一些NLP類似的東西正在進行......)是否是'To'這是第二次失蹤,使它給我一個change而不是?

回答

3

如果Rails成功解析遷移名稱並且能夠爲您生成代碼,它將使用change方法。否則,它會回落到up/down方法,並讓你填寫的部分。

我認爲第二個遷移名稱應該是CreateClientPrimaryEngineer

+0

呵呵。有趣。謝謝。就像參考一樣,AddPrimaryEngineerToClient * *確實會創建一個更改方法。 – Crisfole

+0

另外,當我執行這些遷移時,它不會爲我生成任何代碼。只需在創建和上/下選擇。 – Crisfole

+0

我現在無法對其進行測試......如果您提供了一些列名稱,請嘗試執行「rails g migration add_name_to_users name:string」之類的操作。我通常使用下劃線,所以它讀得更好,但它應該無關緊要...字符串類型是默認的,所以你可以省略。 –