我通过我的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有什么原因吗?在我看来,重置密码令牌不可能是相同的,但它在创建时自动为零,这样做甚至是有意义的。
希望有人能帮忙。
发布于 2014-07-11 09:55:27
解决了。
必须删除数据库中我的用户表中的命名索引,现在它可以正常工作了。
https://stackoverflow.com/questions/24693813
复制相似问题