Ruby onRails セッションをDBで管理

rake db:sessons:create
rake db:migrate

config/environment.rb

config.action_controller.session_store = :active_record_store

定期的にセッションを消す為のrakeタスクをつくる

require 'tempfile'

namespace :my_task do

task :app_environment => :environment do
require "#{RAILS_ROOT}/app/controllers/application.rb"
end


##########################################
# my tasks
##########################################


desc "delete old sessions"
task :delete_old_sessions => :app_environment do
ActiveRecord::Base.connection.execute "DELETE FROM sessions WHERE updated_at < now() - interval 1 day"
end

end

cronにこのレイクタスクを追加して終わり