0

我对 Rails 比较陌生,在尝试设置 Devise 时遇到了问题。我相信这个问题源于我在尝试安装 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 回答