Session On Rails

by winson, about 1 year ago.

Session在Railss中扮演非常重要的角色,例如購物車及帳號登入,這都是非常基本的東西,又因為在Rails上處理Session實在是簡單到不行,常常會有許多觀念錯誤之處。

有一種用法是在ApplicationController裡面預先寫好處理Session的程式碼,這樣在其他Controller裡頭就可以透過before_filter直接拿來用。

例如: http://pastie.textmate.org/58217

理論上不應該把整台購物車存到Session,但我暫時用#3,因為能夠1行完成的,就不弄成3, 4行。

處理Session要有幾個基本的觀念:

  • 存進去的物件要盡量小,例如model的id多半是整數,那麼就很適合存入Session。
  • 有空要去清。例如開發時,可以直接清tmp/sessions目錄下的暫存檔,或Session table;正式上線當然要寫batch去清。
  • 記得寫expire的code。
  • 不需要經過額外的Marshal處理。就算是檔案型Session系統也會自動處理並轉換,這一部份不需要額外用dump什麼的。

  • Posted in Sugar, on Tuesday, May 01, 2007, at 12:16 AM.