2013-11-25 106 views
0

我已經創建了一個帶有rails4的web應用程序,並且使用devise_ldap_authenticable gem開發了認證系統。 其中我使用用戶名登錄而不是電子郵件。但我想在我的用戶表中存儲電子郵件。 我的用戶模型是如何在Ruby on Rails應用程序數據庫中存儲ldap數據?

class User < ActiveRecord::Base 
# Include default devise modules. Others available are: 
# :confirmable, :lockable, :timeoutable and :omniauthable 
#@attr_accessible :email, :password, :password_confirmation 
# not required for LDAP :recoverable, :registerable, :validatable 
devise :ldap_authenticatable, :rememberable, :trackable 

validates_uniqueness_of :email, :allow_blank => true 

before_save :get_ldap_email 

def get_ldap_email 
    self.email = Devise::LDAP::Adapter.get_ldap_param(self.username, "mail") 
end 
end 

但在電子郵件領域的用戶表像

`email` = '--- !ruby/array:Net::BER::BerIdentifiedArray\ninternal:\n- !ruby/string:Net::BER::BerIdentifiedString\n str: !binary |-\n cy5naG9zaEBzYW1zdW5nLmNvbQ==\n ber_identifier: 4\nivars:\n :@ber_identifier: 49\n' 

其存儲數據我的日誌說 LDAP:請求PARAM郵件具有值「[email protected] 「]

如何將此值存儲到我的用戶表中。我在哪裏做錯了?請幫助我。

回答

0

只需要添加下列那麼它完全確定

def get_ldap_email 
    self.email = Devise::LDAP::Adapter.get_ldap_param(self.username, "mail").first 
end 
相關問題