2011-11-13 3 views
0

文字列型の "description"という属性を持つモデル "List"があります。良いアイデアではありませんので、テキストを入力するように変更したいと思います。しかし、私はそれを変更することはできません。レールモデルの属性タイプが削除されない

私がやった:

rails destroy model List 

rake db:rollback 

rake db:migrate 

を私はその後、text型の記述でモデルを再宣言し、すくいデシベルを実行します。移行します。

は、次に私が行います

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すくいデシベル:移行スクリプト 3.すくいデシベル 2.変更をロールバック:

を移行問題は今、あなたのデータベースがまだ古いテーブルを持っていることです。したがって、データベースからテーブルを手動で削除し、rake db:migrateを再度実行する必要があります。それはあなたの問題を解決するはずです。

+0

ありがとうございました。私はちょうどrake db:dropしてから移行しました。 – AdamT

関連する問題