首先,我对Rails相对较新,可能忽略了一些非常简单的事情。
我正在使用Devise和devise_ldap_authenticatable Gems对Active Directory执行身份验证。但是,当用户首次登录用户重定向回/ login页面时,对AD的身份验证正在运行。用户的条目将添加到数据库中,页面上将显示一条Flash消息(参见下文)。一旦用户第一次进行了身份验证,并且已将用户的条目添加到本地数据库,所有后续登录都将按预期工作,并且用户将重定向到root_path。
注意:我知道flash消息发生了什么,我只是怀疑某些东西正在调用devise.en.yml中不存在的错误,因为其他错误。我可以轻松地向该文件添加消息以解决该问题。我离开了问题以协助排除故障。我怀疑正确的翻译是:en.devise.sessions.signed_in:'成功登录。'
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
答案 0 :(得分:4)
可能是一个菜鸟错误,我最终从app / models / user.rb中删除了:validatable
,一切正常。希望这可以使某人免于像我一样沮丧。