首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计用户注册失败

设计用户注册失败
EN

Stack Overflow用户
提问于 2014-07-11 08:57:14
回答 1查看 462关注 0票数 1

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

代码语言:javascript
复制
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!

但是,如果我现在试图在注册页面上注册一个新用户,我在提交时会出现以下错误:

代码语言:javascript
复制
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对象如下所示:

代码语言:javascript
复制
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

有什么原因吗?在我看来,重置密码令牌不可能是相同的,但它在创建时自动为零,这样做甚至是有意义的。

希望有人能帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 09:55:27

解决了。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24693813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档