2011-12-27 80 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!'然後再回滾,然後在回滾時取消註釋。