Rails devise_ldap_authenticatable初始登录失败

时间:2012-02-23 15:06:20

标签: ruby-on-rails devise ldap

首先,我对Rails相对较新,可能忽略了一些非常简单的事情。

我正在使用Devisedevise_ldap_authenticatable Gems对Active Directory执行身份验证。但是,当用户首次登录用户重定向回/ login页面时,对AD的身份验证正在运行。用户的条目将添加到数据库中,页面上将显示一条Flash消息(参见下文)。一旦用户第一次进行了身份验证,并且已将用户的条目添加到本地数据库,所有后续登录都将按预期工作,并且用户将重定向到root_path。

注意:我知道flash消息发生了什么,我只是怀疑某些东西正在调用devise.en.yml中不存在的错误,因为其他错误。我可以轻松地向该文件添加消息以解决该问题。我离开了问题以协助排除故障。我怀疑正确的翻译是:en.devise.sessions.signed_in:'成功登录。'

  • 使用设计(1.5.3)
  • 使用net-ldap(0.2.2)
  • 使用devise_ldap_authenticatable(0.5.1)

Flash消息:

<div class="notice">translation missing: en.devise.user.user.signed_in</div>

相关路线:

devise_for :users, :skip => [:sessions]
as :user do
    get "/login", :to => "user#new", :as => :new_user_session
    post "/login", :to => "user#create", :as => :user_session
    delete "/logout", :to => "user#destroy", :as => :destroy_user_session
end

application_controller.rb:

class ApplicationController < ActionController::Base
    rescue_from DeviseLdapAuthenticatable::LdapException do |exception|
        render :text => exception, :status => 500
    end
    protect_from_forgery

    # Require user to be authenticated to dispay the page.
    before_filter :authenticate_user!
end

1 个答案:

答案 0 :(得分:4)

可能是一个菜鸟错误,我最终从app / models / user.rb中删除了:validatable,一切正常。希望这可以使某人免于像我一样沮丧。