mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Add some more stuff to the rack guide
This commit is contained in:
@@ -119,9 +119,7 @@ h5. Adding a Middleware
|
||||
|
||||
You can add a new middleware to the middleware stack using any of the following methods:
|
||||
|
||||
* +config.middleware.add(new_middleware, args)+ - Adds the new middleware at the bottom of the middleware stack.
|
||||
|
||||
* +config.middleware.insert(index, new_middleware, args)+ - Adds the new middleware at the position specified by +index+ in the middleware stack.
|
||||
* +config.middleware.use(new_middleware, args)+ - Adds the new middleware at the bottom of the middleware stack.
|
||||
|
||||
* +config.middleware.insert_before(existing_middleware, new_middleware, args)+ - Adds the new middleware before the specified existing middleware in the middleware stack.
|
||||
|
||||
@@ -153,6 +151,16 @@ You can swap an existing middleware in the middleware stack using +config.middle
|
||||
config.middleware.swap ActionController::Failsafe, Lifo::Failsafe
|
||||
</ruby>
|
||||
|
||||
h5. Middleware stack is an array
|
||||
|
||||
The middleware stack behaves just like a normal +Array+. You can use any +Array+ methods to insert, reorder, or remove items from the stack. Methods described in the section above are just convenience methods.
|
||||
|
||||
For example, the following removes the middleware matching the supplied class name:
|
||||
|
||||
<ruby>
|
||||
config.middleware.delete(middleware)
|
||||
</ruby>
|
||||
|
||||
h4. Internal Middleware Stack
|
||||
|
||||
Much of Action Controller's functionality is implemented as Middlewares. The following table explains the purpose of each of them:
|
||||
@@ -197,6 +205,26 @@ use Rack::Head
|
||||
run ActionController::Dispatcher.new
|
||||
</shell>
|
||||
|
||||
h4. Using Rack Builder
|
||||
|
||||
The following shows how to replace use +Rack::Builder+ instead of the Rails supplied +MiddlewareStack+.
|
||||
|
||||
<strong>Clear the existing Rails middleware stack</strong>
|
||||
|
||||
<ruby>
|
||||
# environment.rb
|
||||
config.middleware.clear
|
||||
</ruby>
|
||||
|
||||
<br />
|
||||
<strong>Add a +config.ru+ file to +RAILS_ROOT+</strong>
|
||||
|
||||
<ruby>
|
||||
# config.ru
|
||||
use MyOwnStackFromStratch
|
||||
run ActionController::Dispatcher.new
|
||||
</ruby>
|
||||
|
||||
h3. Rails Metal Applications
|
||||
|
||||
Rails Metal applications are minimal Rack applications specially designed for integrating with a typical Rails application. As Rails Metal Applications skip all of the Action Controller stack, serving a request has no overhead from the Rails framework itself. This is especially useful for infrequent cases where the performance of the full stack Rails framework is an issue.
|
||||
|
||||
Reference in New Issue
Block a user