在 Rails ,要將 sessions 存入 database,首先要先在 database 建立相關資料表

# rake db:sessions:create
# rake db:migrate

然後在 config/environment.rb 寫入以下設定:

config.action_controller.session_store = :active_record_store

重新啟動以後,雖然可以把 sessions 存入資料庫,卻會發生另一個問題

ActionController::InvalidAuthenticityToken in ...

查了一下,是 Rails 不知道從哪一版開始,新加入防止 CSRF (Cross Site Request Forgery) 的機制。

 

所以在 config/environment.rb 寫入以下設定: (紅字請改為自己的設定)

config.action_controller.session = {
    :session_key => '_myapp_session',
    :secret      => 'secretpass'
 }
config.action_controller.session_store = :active_record_store

即可。

創作者介紹
創作者 bigair 的頭像
bigair

我的特技就是全身上下都能吃

bigair 發表在 痞客邦 留言(0) 人氣()