设计用户注册失败

时间:2014-07-11 08:57:15

标签: ruby-on-rails-4 devise

我安装了devise并通过我的seeds.rb创建了一个管理员用户

Role.create!(:name => "Super Admin") 
Permission.create!(:subject_class => "all", :action => "manage")
role = Role.find_by_name("Super Admin")
role.permissions << Permission.where(:subject_class => "all", :action => "manage")
user = User.new(:email => "admin@admin.de", password:"adminadmin", password_confirmation:"adminadmin")
user.role = role  
user.save!

但是,如果我现在尝试通过注册页面注册新用户,则会在提交时出现以下错误:

ActiveRecord::RecordNotUnique in Devise::RegistrationsController#create 
TinyTds::Error: Cannot insert duplicate key row in object 'dbo.users' with unique index 'index_users_on_reset_password_token'.: EXEC sp_executesql N'INSERT INTO [users] ([created_at], [email], [encrypted_password], [role_id], [updated_at]) OUTPUT inserted.id VALUES (@0, @1, @2, @3, @4)', N'@0 datetime, @1 nvarchar(255), @2 nvarchar(255), @3 int, @4 datetime', @0 = '2014-07-11T08:50:33.892', @1 = N'user@user.de', @2 = N'$2a$10$pfsgr9knTUGghhwJFmoaLOvWdAUptntlFuVL3/18bKRCs7ZZyFheK', @3 = 2, @4 = '2014-07-11T08:50:33.892'

我的admin对象如下所示:

id  email   encrypted_password  reset_password_token    reset_password_sent_at  remember_created_at sign_in_count   current_sign_in_at  last_sign_in_at current_sign_in_ip  last_sign_in_ip created_at  updated_at  role_id
1   admin@admin.de  $2a$10$/slcMrZGywmS6zDcNxKsl.Ypaxafucvb0Pg1l2SPuy11dYDkU/x/e    NULL    NULL    NULL    1   2014-07-11 08:50:13.093 2014-07-11 08:50:13.093 127.0.0.1   127.0.0.1   2014-07-11 08:48:54.267 2014-07-11 08:50:13.097 1

任何可能导致这种情况的想法?听起来像重置密码令牌不能相同,但它在创建时自动为NIL,因此最让人有意义。

希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

解决了它。

必须删除数据库中我的用户表中的命名索引,现在它可以正常工作。