2012-06-09 50 views
0

我是比较新的铁轨和我遇到的一个问题,而试图建立设计。我认为这个问题源于这样一个事实,即在尝试安装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 

我已经尝试与原来的用户迁移沿着破坏原有的用户脚手架,但我一直陷在这个犯错要么。帮助将非常感谢!

回答

3

您的新移民可能在其定义的email列。注释该行有关添加email列并再次运行。您的模型中可能已经有了一个电子邮件专栏。

0

尝试将这个文件

db/migrate/20120609032448_add_devise_to_users.rb 

,并在那里说

change_table(:users)... 

改变这

create_table(:users)... 
+0

当你做出改变一个新的错误代码:SQLite3的: :SQLException:表“用户”已经存在:CREATE TABLE“users”(“id”INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,“email”varchar DEFAULT''NOT NUL L, “encrypted_pa​​ssword” VARCHAR DEFAULT '' NOT NULL, “reset_password_token” VARCHAR “reset_password_sent_at” 日期时间 “remember_created_at” 日期时间 “sign_in_count” 整数DEFAULT 0 NOT NULL, “current_sign_in_at” 日期时间 “last_sign_in_at” 日期时间 “current_sign_in_ip” VARCHAR ,“last_sign_in_ip”varchar)/Library/Ruby/Gems/2.0.0/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in'initialize' – BeC