0

私は Rails に比較的慣れていないので、Devise をセットアップしようとしているときに問題が発生しました。この問題は、Devise をインストールしようとする前に既にユーザー scaffold を生成したことが原因であると考えていますが、この問題を解決する方法がわかりません。Devise のセットアップを進めると、次のコードを入力する必要があるステップに到達します。

rails generate devise User

それはうまくいき、端末からこれを取り戻します:

invoke  active_record
  create    db/migrate/20120609032448_add_devise_to_users.rb
  insert    app/models/user.rb
   route  devise_for :users

次のステップは、データベースを移行することです。これを試みましたが、次のエラーが発生しました。

==  AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: duplicate column name: email: ALTER TABLE "users" ADD "email"         varchar(255) DEFAULT '' NOT NULL

Tasks: TOP => db:migrate

元のユーザーの移行とともに元のユーザーの足場を破棄しようとしましたが、このエラーで行き詰まります。助けていただければ幸いです。

4

2 に答える 2

3

新しい移行には、おそらくemail列が定義されています。列の追加に関するその行をコメントアウトして、emailもう一度実行してください。モデルにメール列が既にある可能性があります。

于 2012-06-09T04:13:17.540 に答える
0

このファイルに移動してみてください

db/migrate/20120609032448_add_devise_to_users.rb 

そして、それが言うコードで

change_table(:users)...

これを

create_table(:users)...
于 2013-09-26T20:01:13.593 に答える