我遇到登录ActiveAdmin的问题。使用Can't log into Active Admin. Any way to create an admin user?和Cant login to Active Admin的解决方案,
我尝试在rails console
user = AdminUser.new
user.email = 'abc@example.com'
user.password = 'new_password'
user.save
在user.save
上,它会给我以下消息:
(0.0ms) begin transaction
AdminUser Exists (0.0ms) SELECT 1 AS one FROM "admin_users" WHERE "admin_users"."email" = 'abc@example.com' LIMIT 1
false
(1.0ms) rollback transaction
据我了解,这无法创建记录,对吗?
我也尝试了以下解决方案:
AdminUser.create :email => 'abc1@example.com', :password => 'password', :password_confirmation => 'password'
这会在控制台中显示以下消息:
(0.0ms) begin transaction
AdminUser Exists (0.0ms) SELECT 1 AS one FROM "admin_users" WHERE "admin_users"."email" = 'ss1@example.com' LIMIT 1
SQL (11.0ms) INSERT INTO "admin_users" ("created_at", "current_sign_in_at", "current_sign_in_ip", "email", "encrypted_password", "last_sign_in_at", "last_sign_in_ip", "remember_created_at", "reset_password_sent_at", "reset_password_token", "sign_in_count", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["created_at", Tue, 26 Aug 2014 05:41:42 UTC +00:00], ["current_sign_in_at", nil], ["current_sign_in_ip", nil], ["email", "ss1@example.com"], ["encrypted_password", "$2a$10$zLnnk8N3wx9GRb874YjjzOHukteF/qRjWPQMFTZOr7NMepljRRqOC"], ["last_sign_in_at", nil], ["last_sign_in_ip", nil], ["remember_created_at", nil], ["reset_password_sent_at", nil], ["reset_password_token", nil], ["sign_in_count", 0], ["updated_at", Tue, 26 Aug 2014 05:41:42 UTC +00:00]]
(138.9ms) commit transaction
#<AdminUser id: 3, email: "ss1@example.com", encrypted_password: "$2a$10$zLnnk8N3wx9GRb874YjjzOHukteF/qRjWPQMFTZOr7NM...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2014-08-26 05:41:42", updated_at: "2014-08-26 05:41:42">
编辑:
还尝试删除并创建所有模型,如下所示:
rake db:drop:all
rake db:create:all
rake db:migrate
但是,由于用户名或密码无效,它仍然无法登录。我该如何解决这个问题?
答案 0 :(得分:3)
你可能已经想到了这一点......但如果你正在使用DEVISE,请不要关注ACTIVEADMIN的指南!它不会起作用......(他们真的需要修改他们的自述文件......它已经......了一年。)
无论如何,问题是用户必须同时存在于Users和AdminUsers中。我第一次设置ActiveAdmin时没有遇到这个问题,因为在我使用的指南中只有一个布尔值,您可以检查或取消选中用户是否为管理员用户。 (设置起来比较困难,但是更明智的做事方式。
无论如何,你只需要去一个rails控制台,而不是这个:
AdminUser.create :email => 'abc1@example.com', :password => 'password', :password_confirmation => 'password'
..做这个:
User.create :email => 'abc1@example.com', :password => 'password', :password_confirmation => 'password'
问题解决了!
答案 1 :(得分:0)
您的错误消息显示您使用的是用户名作为身份验证密钥invalid username or password
,并且您尝试使用电子邮件登录。您的表结构显示您正在使用设计进行身份验证。所以config/initializers/devise.rb
中肯定存在一些问题。尝试使用
config.case_insensitive_keys = [ :email, :username ]
config.strip_whitespace_keys = [ :email, :username ]
可能还需要进行一些其他更改。看看设计宝石吧。
这将解决您的问题。
答案 2 :(得分:0)
我遇到了同样的问题,我解决了这个问题。
$ rake db:seed
$ rails runner "puts AdminUser.count" # should be => 1