1
私はRuby on Railsを初心者だと私は私のプロジェクトではエラー処理 - 電子メールのLDAP - レール
を助ける必要がある、私は、LDAP上のユーザーの電子メールをキャッチする必要があります。
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :ldap_authenticatable,:rememberable, :trackable
#validates :username, presence: true, uniqueness: true
validates :email, presence: true
validates_uniqueness_of :email
before_validation :get_ldap_email
before_save :get_ldap_email
def get_ldap_email
self.email = Devise::LDAP::Adapter.get_ldap_param(self.username,"mail").first
end
しかし、LDAPで電子メールを持っていない場合は、Rails'のエラーメッセージを表示し、私は私が作ったメッセージでページにリダイレクトします。
私はSessionControllerで "if"を作成したいが、メソッドを呼び出すのに成功していない。
class Users::SessionsController < Devise::SessionsController
require_relative '../../models/User.rb'
def create
super
if get_ldap_email == nil
# redirect to /errorlogin
end
end
そして、ここで提示メッセージ
undefined local variable or method `get_ldap_email' for #
Users::SessionsController:0x67342e0>
はまた、私は「私はドンこのメッセージ
Validation failed: Email can't be blank
を表示...このため
今def get_ldap_email
ldapEmail = Devise::LDAP::Adapter.get_ldap_param(self.username,"mail")
if ldapEmail == nil
else
self.email = ldapEmail.first
end
end
しかしをユーザーmodificed私がする必要があるもの...