2012-11-15 95 views
0

所以我正在製作一個Rails應用程序來學習如何使用這個框架。有沒有沒有遷移的modyfiong新Rails模型的方法?

我創建使用用戶:

rails g model User name:string 

然後我意識到我的用戶還需要另一個屬性,並稱爲user_role的另一資源的關係。 說我UserRole的模式是這樣的:

rails g model userRole roleName:string 

到目前爲止,我發現我只能實現使用遷移的變化,但是這是相當不方便,我不清楚,因爲我真的沒有任何舊數據,我只是調整我的模型。

任何建議爲noob?

回答

0

遷移非常有幫助。它會跟蹤您的模式更改。但是,如果您發現在創建遷移後忘記添加字段,則可以在不創建新遷移的情況下編輯舊的遷移。如果您已經遷移了數據庫(使用rake db:migrate),則可以回滾。

rake db:rollback 

現在,編輯遷移文件並添加/刪除您的字段。完成後,再次遷移

rake db:migrate 

當您創建單獨的模型時,您應該創建單獨的遷移。否則,將來你會感到困惑。順便說一句,當創建兒童模型時,您不需要對父遷移進行任何更改。您需要在子表中添加外鍵。你可以使用這樣的東西:

rails g model Comment post:references 

這將在評論表中添加post_id

0

你可以嘗試一個非數據庫支持的ActiveModel模型。例如,Mongoid或Datamapper。許多NoSQL解決方案不需要遷移以更改模型。

0

試試這個:

rails g model ModelName --migration=false 
+0

雖然這個代碼片斷是值得歡迎的,並可以提供一些幫助,這將是([極大,如果它包括一個改進的解釋// meta.stackexchange.com/q/114762 )* how *和* why *解決了這個問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –