2010-08-17 172 views
0

我正在使用facebooker authlogic插件。我現在工作得很好。但是,任何試圖設置User.before_connect(facebook_session)的電子郵件地址是造成Apache的拋出以下錯誤:腳本頭Facebooker before_connect(facebook_session)通過電子郵件導致http錯誤

過早結束:person_session,引用者:

(person_session是我USER_SESSION) 。

這裏是before_connect的代碼:

DEF before_connect(facebook_session) self.name = facebook_session.user.name self.login = facebook_session.user.first_name self.points = Person.default_points

Rails.logger.debug("*********email: "+facebook_session.user.email) 
self.email=facebook_session.user.email 

注意,記錄發生錯誤之前的電子郵件地址是有效的。

我的猜測是添加'@'導致它失敗。另一種可能性是它試圖對導致http錯誤的電子郵件地址進行驗證。

任何想法,將不勝感激。

謝謝。

+0

作爲一種變通方法,我我在我的用戶模型中創建了一個名爲temp_email的字段。我將它設置在before_connect中,然後將其永久設置在我的person_session_controller中。所以這意味着這與驗證有關(我猜測)。仍然會很高興有一個「真正的」修復。 – galactikuh 2010-08-17 22:06:20

回答

0

顯然,您也可以從應用程序中的facebook_session獲取電子郵件。但是你必須把下面的你application_controller訪問facebook_session(這是非顯而易見的,從另一個人的不起眼的帖子才發現):

的before_filter:set_facebook_session 是helper_method:facebook_session