原创作者: hideto   阅读:1334次   评论:0条   更新时间:2011-05-26    
session数据保存在Rails程序根目录下的tmp/sessions目录
Rails的sessions默认以Marshal Ruby对象保存
有时候程序由于session数据不对而出错,我们可以写一段脚本来检查session数据:
DumpingSessionContentsDuringDevelopment/script/dump_sessions
#!/usr/bin/env ruby
require 'pp'
require File.dirname(__FILE__) + '/../config/environment'
Dir['app/models/**/*rb'].each{|f| require f}
pp Dir[File.dirname(__FILE__) + '/../tmp/sessions/ruby_sess*']collect {|file|
  [file, Marshal.load(File.read(file))]
}

我们可以运行ruby script/dump_sessions来查看session数据
我们还可以写一个rake task来从ActiveRecord session store显示sessions数据:
namespace :db do
  namespace :sessions do

    desc "Dumps the database-backed session data"
    task :dump => [:environment] do |t|
    require 'pp'
    Dir['app/models/**/*rb'].each{|f| require f}
    sessions = CGI::Session::ActiveRecordStore::Session.find_all
    sessions.each do |session|
      pp session.data
    end
  end
end
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics