Skip to main content

railtie_middleware_hooks

🧩 Inject and Reorder Middleware via Engine Railties​

Expert engines can hook into the middleware stack of the host app to add or reorder middleware. Inside your engine’s Railtie, use config.app_middleware to precisely position your middleware relative to existing ones.

# lib/my_engine/railtie.rb
module MyEngine
class Railtie < ::Rails::Railtie
initializer "my_engine.insert_middleware" do |app|
# Insert before Rack::Runtime
app.config.app_middleware.insert_before ActionDispatch::Static, "MyEngine::CustomLogger"

# Swap out a default middleware
app.config.app_middleware.swap ActionDispatch::Cookies, MyEngine::EncryptedCookies
end
end
end

This approach lets you add cross-cutting concerns like logging, rate limiting, or feature flag checks exactly where needed in the stack.