RailsでDBセッションを使う

2009/05/19 2:49 に 森山誠二郎 が投稿   [ 2009/05/19 3:01 に更新しました ]
  Status: 500 Internal Server Error
  ActionController::Session::CookieStore::CookieOverflow
というエラーが出るようになったので、セッションデータをDBにストアするよう変更する。
CookieStoreは、 セッションデータをサーバ上のファイルやDBに保存する代りに、クッキー自体に保存する。 このため、セッションデータの読み書きのコストが減ったり、古いセッションデータ の掃除の手間がなくなる、という利点があるとのことだが、容量が4kしかないらしい。

必要な変更:
  1. config/environment.rbで以下の行をアンコメントする:
    config.action_controller.session_store = :active_record_store
  2. 以下を実行してセッション格納用テーブルを作成する
    rake db:sessions:create
            rake db:migrate
  3. app/controllers/application.rbで以下のような部分で、:secret前のコメントを外す:
    protect_from_forgery # :secret => '6d0b20bbf9203508337aff3214f79efb7a0'

Comments