尝试重新安装Devise。 Postgresql上的Rails 4
我按照Devise的说明(比如添加设计gem / bundle install)并对我的环境/ application.rb进行了更改/添加了我的flash消息
然后跑
rails generate devise User
得到了这个......
invoke active_record
create db/migrate/20130819025615_add_devise_to_users.rb
insert app/models/user.rb
route devise_for :users
但问题是当我尝试运行rake db:migrate
时出现此错误
== AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "users" does not exist
: ALTER TABLE "users" ADD COLUMN "email" character varying(255) DEFAULT '' NOT NULL/Users/name/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in exec'
所以我理解错误告诉我没有表'用户'存在,但是Devise应该创建这个,所以我的主要问题是......解决这个问题最简单的方法是什么?
另外,为什么没有Devise创造这个?这会引起未来的问题吗?
我应该在postgres中创建一个Users表,然后在Devise中再次运行该命令并让它更改必要的文件和“devise-ify”吗? (如果它甚至会这样做)
谢谢!
答案 0 :(得分:2)
我不认为Devise会创建一个User表。 rails generate devise User
只会生成一个将Devise与User表相关联的迁移。在您的情况下,用户表尚不存在。因此,错误。首先,您应该编写一个创建User表的迁移。例如:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
end
end
end
然后运行rake db:migrate
。通过适当地命名文件,确保在 db / migrate / 20130819025615_add_devise_to_users.rb之前运行创建表的迁移。
答案 1 :(得分:0)
养猫的方法有很多种(我是动物友好的)
方法1: 1. rails db create 2. rails db setup 它执行早期的迁移代码并创建用户和其他迁移。
方法2: - 使用&rbsp; rails generate devise User&#39;创建迁移。 - 运行&#39; rake db:migrate&#39; 这样做也很好。
但是,如果您需要以任何方式在“用户”表中添加其他字段,则可以采用迁移方式。