2011-11-13 53 views
0

我有一個模型「List」,其中有一個名爲「description」的字符串類型的屬性。不是一個好主意,所以我想改變它以鍵入文本。但是,我無法改變它。rails模型屬性類型不會被刪除

我做:

rails destroy model List 

rake db:rollback 

rake db:migrate 

我再重新申報類型的文本描述的模型,做一個耙分貝:遷移。

然後我做的:

rails c 
ruby-1.9.2-p290 :002 > List 
=> List(id: integer, name: string, popularity: string, vote_counter: integer, description: string, created_at: datetime, updated_at: datetime) 

正如你所看到的,是描述字符串類型仍。

我看着遷移,它是文本類型。

def change 
    create_table :lists do |t| 
     t.string :name 
     t.string :popularity 
     t.integer :vote_counter 
     t.text :description 

     t.timestamps 
    end 
    end 

我該如何將其實際更改爲文本?

謝謝。

回答

1

問題是「銷燬模型」刪除了您的遷移腳本。因此,回滾不會回滾您的原始模型,因爲沒有用於回滾的遷移腳本。當你運行rake db:rollback時,你並沒有看到drop_table(:lists),是嗎?你不應該因爲你想改變模型而調用銷燬模型。

你應該做的是:1。 耙分貝:回滾 2.更改您的遷移腳本 3.耙分貝:遷移

的問題是,現在你的數據庫仍然有舊錶。因此,您需要手動從數據庫中刪除表並運行rake db:再次遷移。這應該可以解決你的問題。

+0

謝謝。我只是做了rake db:drop然後遷移。 – AdamT