Railsでセッションをオフにする。

ActionWebServiceを使っていたら、クライアント側にクッキーが設定されないせいで、リクエスト毎にセッションファイルが1つずつ増えていた。

ので、セッションをオフにする方法を調べた。

アプリケーション全体でオフ。

class ApplicationController < ActionController::Base
  session :disabled => true
end

特定のコントローラだけオン。

class MyController < ApplicationController
  session :disabled => false
end

アクション単位でオフ。

  class MyController < ApplicationController
    session :off, :only => %w(this_action that_action)

    def this_action
    end

    def that_action
    end

    def other_action
    end
  end

foo bar以外の全部のアクションをオフにする。

  session :off, :except => %w(foo bar)

foo barのアクションをオフにする。

  session :off, :only => %w(foo bar)


アプリケーション全体に設定する場合、session :offはsession :onとできないので良くないという話がWikiに出ている。ソースを見るとsession :offはsession :disabled => trueと同じことをやっているように見えるので、session :offに対して:disabled => falseにすればいいような気がするけど……。