Rails4でsession storeをActiveRecordに変更

スポンサーリンク

Rails4では、session store(セッションの格納先)がデフォルトでCookie(クッキー)のみとなっています。session store に、activerecord や memcached, redis を利用するには、別途 gem のインストールが必要となる。今回は、session store を ActiveRecord に変更する例です。以下の gem を使う。

activerecord-session_store

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

— 環境 —
Rails4.1

activerecord-session_store を Gemfile に追加してインストール

Gemfile

インストール。

session_store に ActiveRecord を使うように指定

session_store.rb で activerecord-session_store を使うように指定します。

config/initializers/session_store.rb

デフォルトで、:cookie_store となっている箇所を :active_record_store に変更。

マイグレーションファイルを生成してマイグレーション実行

session 管理DBテーブル用のマイグレーションファイルを生成します。

マイグレーションファイルを確認。

db/migrate/***_add_sessions_table.rb

マイグレーション実行。

DB確認。

あとはサーバー再起動。Session テーブルのレコードに溜まっていく Session 情報は、一定時間経過後に cron などで削除するようにする。以下リンクの Ruby on Rails Guides#session-expiry を参考に、whenever で rake タスクか runner の設定を行うと良いですかね。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
 
スポンサーリンク

Leave Your Message!