Ruby on Railsを勉強中です。 セッション情報はDB(active_record_store)に格納しているのですが、このセッション情報のうち古いもの(1日前とか)を定期的に削除するにはどのようにすればいいんでしょうか? sessionsテーブルで古いものをdeleteすればいいのは分かっているのですが、Railsからどのようなコードを書けばよいのか?(もしくはそんな方法はないのか?)が知りたいです。 RoRバージョン 2.0.2
(6/20 大幅に加筆修正を行いました)Railsのセッションの有効期限は、デフォルトだとブラウザが終了するまでです。これだと、ログインページによくある「ログイン状態を保持する」チェックボックスが作れません。というわけで、やり方を調べてみたら、よさそうな情報がのっているサイトを見つけたので英語の勉強がてら概要を意訳してみたいと思います。 HowtoChangeSessionOptions in Ruby on Rails すべてのセッションに対して一律に有効期限を作りたい場合 environment.rbに下記のように設定します。 ActionController::Base.session_options[:session_expires] = Time.local(2009,"jan") ここでは、上記のように絶対時間を入れます。Time.now + 1.weekのようにするのはうまく
Railsを使っていて自分で直接cookieを設定するという状況はほとんどなく、大抵はsessionをハッシュ感覚で、便利に利用してきた。Rails2.0以降はsessionの保存先はデフォルトでcookieになり、そのまま利用する限りcookieの有効期限は空欄のままなので、ブラウザを終了するまでsessionは保持されることになる。そして、次回ブラウザを起動すると、期限切れのcookie(その中にsessionが保存されている)は削除されている。 ほとんどの場合、上記デフォルト設定のまま使っていたか、またはrestful_authenticationなどに頼りきりだったので、いざ自分でsessionに有効期限を設定しようとした時、苦労してしまった。とても基本的なことであるのに...。 config/environment.rbでの設定 2009-01-01 00:00:00まで有効にし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く