Rails 2.2.xでsession_idをもとにセッションにデータを突っ込む
例えば、外部にある認証系がこちらのAPIを叩く場合など、セッションが継続してないからsessionからデータを入れられないんだけど、session_idはわかってるからどうにかしたいな、というときに。
今更ながらRails 2.2.2で試してみた。2.3.x以降ではCGIモジュールは破棄されてRackに移行したので、全く変わってる気がする。
class SomeController < ActionController::Base
session :off
def index
session_id = (get session_id ...)
# CgiRequestとRackRequestに対応
options = request.class.get_const("DEFAULT_SESSION_OPTIONS").merge(:session_id => session_id)
my_session = CGI::Session.new(request.cgi, options.stringify_keys)
my_session[:foo] = :bar
my_session.close
end
end