无法登录ActiveAdmin

时间:2014-08-26 05:44:53

标签: ruby-on-rails activeadmin

我遇到登录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

但是,由于用户名或密码无效,它仍然无法登录。我该如何解决这个问题?

3 个答案:

答案 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