Rails3.0でmiddleware stackに独自クラスを積む方法

Tsukasa OISHI

Rails3.0では、独自のクラスをRackに積みたいときはconfig/application.rbで以下のように書けばいいようです。

module AppName
  class Application < Rails::Application
    .....()
    config.middleware.use "::NewRackClass"
  end
end

これでStackの中にNewRackClassが積まれます。

[tsukasa@ubuntu] $ rake middleware 
(in /home/tsukasa/devel/app_name)
use ActionDispatch::Static
use Rack::Lock
use Rack::Runtime
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::Callbacks
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use Rack::MethodOverride
use ActionDispatch::Head
use NewRackClass
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
run AppName::Application.routes

途中に挿入したいときはinsertメソッドなどを使用すればOKです。