人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby on Railsを勉強中です。
セッション情報はDB(active_record_store)に格納しているのですが、このセッション情報のうち古いもの(1日前とか)を定期的に削除するにはどのようにすればいいんでしょうか?
sessionsテーブルで古いものをdeleteすればいいのは分かっているのですが、Railsからどのようなコードを書けばよいのか?(もしくはそんな方法はないのか?)が知りたいです。

RoRバージョン 2.0.2

●質問者: tak-n
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:2.0 dB DELETE Rails RoR
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● moro
●60ポイント ベストアンサー

http://d.hatena.ne.jp/asin/4797336625/morodiary05-22

リンクは自分で書いた書籍の宣伝(アサマシつき)です。

ご質問の内容は、script/consoleやRailsアプリ内から以下のような感じでやればOKです。1.days.agoを適宜書き換えてください。

CGI::Session::ActiveRecordStore::Session.delete_all(["sessions.updated_at < ?", 1.days.ago])

実際はcronなんかで実行すると思いますが、その場合はscript/runnerを使うとよいと思います。

#!/bin/sh
cd path/to/app
ruby script/runner 'CGI::Session::ActiveRecordStore::Session.delete_all(["sessions.updated_at < ?", 1.days.ago])'

以下宣伝。

というようなことを冒頭の書籍にも書いたので(「36. セッションを無効にする」)興味がありましたらご覧ください。

◎質問者からの返答

ありがとうございます。

まさに期待していた回答です。

さっそく実装してみたいと思います。

#書籍の購入も検討します。(笑)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ