RailsでセッションデータをJSON形式で格納する

Nodeとセッションデータを共有しようと思ったらMarshalのアンシリアライズできねえ!ってなったので。AWS環境でELB挟んでsocket.IOとか使いたいのでRedisにストアした。
Node側ではio.configureで、RailsのセッションキーからRedis覗いてhandshake.sessionにデータ入れればいけました。

config/initializers/session_store.rb

RailsApp::Application.config.session_store :redis_store, :servers => "redis://#{Constants.redis.host}:#{Constants.redis.port}/#{Constants.redis.db}", :expire_in => 60 * 60 * 24 * 7 * 2

class Redis
  class Store < self
    module Marshalling
      private
      def  _marshal(val, options)
        yield marshal?(options) ? val.to_json : val
      end

      def _unmarshal(val, options)
        unmarshal?(val, options) ? JSON.parse(val) : val
      end
    end
  end
end