我在我的rails 3.0.9应用程序中使用了默认setup.i.e的活动管理员。我有User
模型,其中包含用于客户登录的设计身份验证以及在AdminUser
模型上运行的Active Admin。除了活动的管理员登录页面之外,一切都好。当我尝试访问http://localhost:3000/admin时,我很快就会获得活动的管理员登录页面。但是在我正确/错误地输入用户名/密码后,身份验证过程需要将近3-5分钟。由于这个原因,我甚至无法在heroku上部署应用程序,并且在heroku日志中出现超时错误。
但是在我登录到活动管理员后的开发模式中,一切都运行良好。我假设这是由于路由问题而发生的。所以我在这里完全粘贴我的路线文件。
有人可以帮我吗?感谢
更新09年1月:似乎问题与我认为的路线无关。我删除了所有其他模型/控制器/视图/路由,只留下User
和AdminUser
个东西。但我仍然经历着缓慢。
答案 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