警告:其中的一些可能是非常錯誤的,所以如果我的假設不正確,請讓我知道。帶有ActiveRecord會話和Restful-authentication的Rails:會話表何時寫入?
這裏就是我試圖完成:
我使用的是寧靜的身份驗證登錄。但是,因爲我使用flex/ruby_amf作爲我的UI,所以我必須單獨驗證Flex中的每個連接。
我決定這樣做的方式是讓登錄屏幕重定向到嵌入式Flash頁面,將會話ID作爲flashvar插入。 Flash應用程序會爲每個請求發送會話ID,並且在所有相關控制器上都會先過濾一次,以檢查與會話ID標識的會話關聯的用戶是否已登錄。
我將用戶與會話相關聯的方式是在會話表中添加一個'user_id'列,並執行一個sql「update sessions set user_id ...'」類型的查詢,該查詢從登錄函數調用。
但是,user_id僅在用戶第二次登錄時纔會更新。稍微調查顯示會話表中的記錄在執行登錄功能期間尚不存在。
所以,如果一切到這一點是有道理的,並符合最佳實踐等等,那麼我的問題是:
在什麼時間點是在會話表中的記錄產生的?有沒有辦法更新登錄函數中的會話對象,並讓rails爲我寫入user_id到數據庫?
在rails中會話的行爲對我來說是一個真正的謎。我會很感激任何幫助。
謝謝。
PS:我在這裏找到了關於更新會話表的討論: http://www.nabble.com/Rails-2.3-Sessions-td22720164.html – krispyfi 2009-05-25 04:20:19