2011-10-19 84 views
0

全部,在軌道上的紅寶石模型的變化

我需要澄清如何模型更改需要在軌道上的紅寶石跟蹤。我開始創建一個帶有兩個字段(名稱和電子郵件)的模型。這是通過運行

我做了什麼

  1. 創建的模型 「軌生成模式用戶FIRST_NAME:字符串姓氏:字符串」

    這創造了一個模型文件

    1. 然後我添加了一些驗證到用戶創建的文件
    2. 使用註釋gem來註釋類
    3. 使用「束EXEC耙分貝:遷移」將我的模型數據庫,創建表

    我現在想要一對夫婦更多的字段添加到模型。我需要遵循哪些步驟?

    1. 是否向數據庫添加列並運行一些命令以便模型(類)與db同步?

    2. 我是否用新字段刪除並重新創建整個模型?

    什麼是推薦的方法 VENU

回答

0

我不知道你正在使用的軌道是什麼版本..但INT軌道3.x中是可以做到的

rails generate migration add_fields_user 

這創建一個文件在db/migrate/[timestamp] /add_fields_user.rb

現在你可以在文件中寫入並運行rake db:migrate

add_column :users , :city, :string 
0

你想要做的是通過鍵入運行遷移。 rails生成migration_of_migration。這將創建一個空的遷移,您可以定義要添加到模型中的內容。在你的情況下,它可能是這樣的:

class DescriptionOfMigration < ActiveRecord::Migration 

self.up 
add_column :users, :email, :string 
end 

self.down 
remove_column :users, :email 
end 

end 

這使得它可以在模型上遷移兩種方式。

2

你想用遷移到更新現有的表,你可以在命令行

做的整個過程假設你已經做了

rails generate model user first_name:string last_name:string 

以前,你會添加字段,像這樣;

rails generate migration AddFieldsToModel new_field:string another_field:string.... 

Rails在'AddFieldsToModel'上做了一些神奇的事情,並從中找出了表名。

一旦你創建的遷移,你可以看看它在DB /遷移,然後,如果你喜歡它只是運行

rake db:migrate 

這將更新您的數據庫,以新的字段添加到它。您不需要對實際的model.rb文件執行任何操作 - 但是您需要重新運行註釋任務以將其重新註釋到model.rb文件中。

+0

這是一個真正的聲明,軌道將「填充」這個模型與數據庫中的所有字段?並且這些字段的名稱將與列名相同?這些將成爲對象級變量嗎? – user993797