2011-12-27 82 views
0

我在Rails 3.1.3中使用postgresql后端开始项目。Active Admin回滚:“验证失败:电子邮件已被采纳”

我生成了几个模型,然后添加了Active Admin宝石。 稍后我决定组合2个模型,并希望回滚到开始位置,以便我可以删除一个模型并使用正确的模式重新启动迁移。

我输入:

rake db:rollback step=10 

很顺利达主动管理位,当它中止回滚:

$ rake db:rollback 
== DeviseCreateAdminUsers: reverting ========================================= 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

Validation failed: Email has already been taken 

Tasks: TOP => db:rollback 

我还没有添加任何用户,所以这可能是'[email protected]'帐户。

的Gemfile

source 'http://rubygems.org' 

gem 'rails', '3.1.3' 

gem 'pg' 
gem 'json' 
gem 'activeadmin' 
gem 'sass-rails', '~> 3.1.5' 
gem 'meta_search', '>= 1.1.0.pre' 
gem "paperclip", :git => "git://github.com/thoughtbot/paperclip.git" 
gem 'mechanize' 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'less-rails-bootstrap' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
+0

你解决了这个问题吗?有同样的问题... – 2012-01-23 16:50:21

回答

0

在回滚之前运行rake db:reset

0

devise_create_admin_users迁移会在migrate:up上创建默认用户,但会尝试在rollback/migrate:down上再次创建它。因此,验证错误,因为电子邮件已经存在。

只需评论'AdminUser.create!'然后再回滚,然后在回滚时取消注释。