我对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
我已尝试销毁原始用户脚手架以及原始用户迁移但我一直遇到此错误。非常感谢帮助!
答案 0 :(得分:3)
您的新迁移可能会在其中定义email
列。评论有关添加email
列并再次运行的行。您的模型中可能已经有了一个电子邮件列。
答案 1 :(得分:0)
尝试转到此文件
db/migrate/20120609032448_add_devise_to_users.rb
并在代码中显示
change_table(:users)...
将此更改为
create_table(:users)...