主动管理员登录缓慢

时间:2012-01-05 00:30:29

标签: ruby-on-rails-3 devise activeadmin

我在我的rails 3.0.9应用程序中使用了默认setup.i.e的活动管理员。我有User模型,其中包含用于客户登录的设计身份验证以及在AdminUser模型上运行的Active Admin。除了活动的管理员登录页面之外,一切都好。当我尝试访问http://localhost:3000/admin时,我很快就会获得活动的管理员登录页面。但是在我正确/错误地输入用户名/密码后,身份验证过程需要将近3-5分钟。由于这个原因,我甚至无法在heroku上部署应用程序,并且在heroku日志中出现超时错误。

但是在我登录到活动管理员后的开发模式中,一切都运行良好。我假设这是由于路由问题而发生的。所以我在这里完全粘贴我的路线文件。

http://pastie.org/3153643

有人可以帮我吗?感谢

更新09年1月:似乎问题与我认为的路线无关。我删除了所有其他模型/控制器/视图/路由,只留下UserAdminUser个东西。但我仍然经历着缓慢。

1 个答案:

答案 0 :(得分:3)

没关系我已经找到了问题,也可能是解决方案。我在这里发帖,所以它会帮助其他有类似问题的人。

在我的应用程序中,我最初使用authlogic gem进行身份验证,但最近我已将此切换为devise以获得更好的支持。但我仍然希望允许旧用户使用相同的密码登录该应用程序。所以我已经将设计加密从Bcrypt重写为Authlogic的sha512,如下所示。

<强>配置/初始化/ devise.rb

config.encryptor = :authlogic_sha512

但我永远不会改变AdminUser模型以适应上述变化。

因此修复应该在我的模型中我应该使用:encryptable:encryptor => :authlogic_sha512

class AdminUser < ActiveRecord::Base

  devise :database_authenticatable, 
         :recoverable, :rememberable, :trackable, :validatable,:encryptable, `:encryptor => :authlogic_sha512`

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

在AdminUser迁移文件中,应启用加密列

create_table(:admin_users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable

      t.encryptable
      # t.confirmable
      # t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
      # t.token_authenticatable


      t.timestamps
    end