The Depot Application

The Depot Application

23.3 Helpers for Formatting, Linking, and Pagination 21 Action Controller: Routing and URLs

21.2 Routing Requests

ls app/controllers/*_controller.rb
app/controllers/admin_controller.rb
app/controllers/application_controller.rb
app/controllers/info_controller.rb
app/controllers/line_items_controller.rb
app/controllers/orders_controller.rb
app/controllers/products_controller.rb
app/controllers/store_controller.rb
app/controllers/users_controller.rb
irb e1/routing/config2/routes_for_depot.rb
>> require "./config/environment.rb"
=> true
 
>> ActionController::Base.session_store = nil
=> nil
>> ActionController::Routing.use_controllers! ["store", "admin", "coupon"]
=> ["store", "admin", "coupon"]
>> load "config/routes.rb"
=> []
>> rs = ActionController::Routing::Routes
=> #<ActionController::Routing::RouteSet:0xb6ce5584 @routes_last_modified=Mon Sep 06 09:12:32 -0400 2010, @routes=[#<ActionController::Routing::Route:0xb7253e30 @requirements={:controller=>"users", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb725e8bc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb725d570 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb725ae9c @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"users"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb7409518 @requirements={:controller=>"users", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb72b20e8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72b1ef4 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb72b1940 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"users"}, @to_s="POST   /users(.:format)?                        {:controller=>\"users\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6d2c574 @requirements={:controller=>"users", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6d2d104 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6d2d028 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6d2cf60 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6d2cec0 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6d2ce34 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"users"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6cf3440 @requirements={:controller=>"users", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cf635c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cf61a4 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6cf5ed4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6cf5d80 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6cf536c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cf4f34 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6cf4ebc @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"users"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6ce640c @requirements={:controller=>"users", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6ce6bb4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ce6b14 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6ce6a60 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6ce69c0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6ce6948 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"users"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6cd85f0 @requirements={:controller=>"users", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cd9270 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cd9194 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6cd8fb4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6cd8dac @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6cd8d20 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"users"}, @to_s="PUT    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6ccfd4c @requirements={:controller=>"users", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cd04f4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cd0454 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6cd03a0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6cd0300 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6cd0288 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"users"}, @to_s="DELETE /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6ccac70 @requirements={:controller=>"line_items", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6ccb148 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ccb0a8 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb6ccb030 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"line_items"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6cb8e94 @requirements={:controller=>"line_items", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cb9560 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cb9470 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb6cb93d0 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"line_items"}, @to_s="POST   /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6cb5af0 @requirements={:controller=>"line_items", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cb6414 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cb6324 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6cb6220 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cb6158 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6cb60a4 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"line_items"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c94210 @requirements={:controller=>"line_items", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c94b70 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c94ad0 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6c94a1c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c9497c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6c948c8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c94828 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6c947b0 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"line_items"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c8ae40 @requirements={:controller=>"line_items", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c8b688 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c8b5d4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6c8b520 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c8b46c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c8b3e0 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"line_items"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c7c2b4 @requirements={:controller=>"line_items", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c7d2b8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c7cfac @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6c7cee4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c7cd04 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c7cc28 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"line_items"}, @to_s="PUT    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c79078 @requirements={:controller=>"line_items", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c79820 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c79780 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6c796cc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c7962c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c795b4 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"line_items"}, @to_s="DELETE /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c74cd0 @requirements={:controller=>"orders", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c751a8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c75108 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb6c75090 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"orders"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c64e5c @requirements={:controller=>"orders", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c65334 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c65294 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb6c6521c @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"orders"}, @to_s="POST   /orders(.:format)?                       {:controller=>\"orders\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c60de8 @requirements={:controller=>"orders", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c62148 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c62094 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c61d10 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c61c70 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6c61978 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"orders"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c54f84 @requirements={:controller=>"orders", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c5590c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c5586c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c557b8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c55718 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6c55664 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c555c4 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6c55538 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"orders"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c41394 @requirements={:controller=>"orders", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c41bdc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c41b28 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c41a74 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c419c0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c41948 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"orders"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c364d0 @requirements={:controller=>"orders", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c37e20 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c37d80 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c37ccc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c37c2c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c37bb4 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"orders"}, @to_s="PUT    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c2f07c @requirements={:controller=>"orders", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c302ec @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c301c0 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c2ff7c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c2fdc4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c2fcfc @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"orders"}, @to_s="DELETE /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c260f8 @requirements={:controller=>"products", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c26f6c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c26bc0 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb6c26954 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"products"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c0ecb4 @requirements={:controller=>"products", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c0f204 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c0f150 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb6c0f0d8 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"products"}, @to_s="POST   /products(.:format)?                     {:controller=>\"products\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6c0bdc0 @requirements={:controller=>"products", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c0c9c8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c0c720 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6c0c658 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c0c3ec @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6c0c34c @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"products"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bf8824 @requirements={:controller=>"products", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bfb3e4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bfb290 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6bfade0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bfad40 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6bfac8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bfabec @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6bfab74 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"products"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bef5e4 @requirements={:controller=>"products", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6befd8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6befcec @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6befc38 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6befb98 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6befb20 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"products"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bdbc10 @requirements={:controller=>"products", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bdd308 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bdd268 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6bdd178 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bdd0d8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6bdd04c @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"products"}, @to_s="PUT    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bd7908 @requirements={:controller=>"products", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bd8150 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bd809c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6bd7fd4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bd7f34 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6bd7ea8 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"products"}, @to_s="DELETE /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bd3fd8 @requirements={}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bd4d70 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb6bd4cbc @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb6bd4c08 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bd4b54 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0xb6bd4aa0 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bd49ec @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0xb6bd4690 @is_optional=true, @raw=true, @value="/">], @controller_requirement=nil, @significant_keys=[:controller, :action, :id], @parameter_shell={}, @to_s="ANY    /:controller/:action/:id/                {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bcc990 @requirements={}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bccee0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb6bcce40 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb6bccd8c @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bcccec @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0xb6bccc38 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bccb98 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0xb6bccb20 @is_optional=true, @key=:format>], @controller_requirement=nil, @significant_keys=[:controller, :action, :id, :format], @parameter_shell={}, @to_s="ANY    /:controller/:action/:id(.:format)?      {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6bb45c0 @requirements={:controller=>"users", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bb4afc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bb4a48 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb6bb49d0 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"users"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6baf048 @requirements={:controller=>"users", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6baf9a8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6baf8f4 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb6baf818 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"users"}, @to_s="POST   /users(.:format)?                        {:controller=>\"users\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6ba66dc @requirements={:controller=>"users", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6ba8338 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ba7e4c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6ba7d34 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ba776c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6ba7424 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"users"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b9f9f4 @requirements={:controller=>"users", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6ba03f4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ba0354 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6ba028c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6ba01d8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6ba0124 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ba0070 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6b9fff8 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"users"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b9bbec @requirements={:controller=>"users", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b9cba0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b9cad8 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6b9ca24 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b9c95c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b9c8d0 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"users"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b90d28 @requirements={:controller=>"users", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b92f9c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b92d44 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6b92bc8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b92858 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b92718 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"users"}, @to_s="PUT    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b8813c @requirements={:controller=>"users", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b88998 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b888f8 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6b88830 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b8877c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b886f0 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"users"}, @to_s="DELETE /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"users"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b837a4 @requirements={:controller=>"line_items", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b83c7c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b83bdc @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb6b83b64 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"line_items"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b806f8 @requirements={:controller=>"line_items", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b80bd0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b80b30 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb6b80ab8 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"line_items"}, @to_s="POST   /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b7b6f8 @requirements={:controller=>"line_items", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b7c01c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b7bf7c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6b7beb4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b7be14 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6b7bd74 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"line_items"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b781d8 @requirements={:controller=>"line_items", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b78c8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b78bec @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6b78b10 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b78a48 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6b78994 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b788cc @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6b7882c @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"line_items"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b73b88 @requirements={:controller=>"line_items", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b74330 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b74290 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6b741dc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b7413c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b740c4 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"line_items"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b6a13c @requirements={:controller=>"line_items", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b6a984 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b6a8e4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6b6a808 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b6a754 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b6a6dc @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"line_items"}, @to_s="PUT    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b66d70 @requirements={:controller=>"line_items", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b67568 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b674b4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6b67400 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b67360 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b672e8 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"line_items"}, @to_s="DELETE /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"line_items"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b62284 @requirements={:controller=>"orders", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b62810 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b6275c @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb6b626e4 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"orders"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b5d374 @requirements={:controller=>"orders", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b5e8a0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b5e7ec @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb6b5e774 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"orders"}, @to_s="POST   /orders(.:format)?                       {:controller=>\"orders\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b59f08 @requirements={:controller=>"orders", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b5a5ac @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b5a50c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6b5a458 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b5a390 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6b5a318 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"orders"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b50624 @requirements={:controller=>"orders", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b512e0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b50ee4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6b50e1c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b50d7c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6b50cc8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b50c28 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6b50bb0 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"orders"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b4d384 @requirements={:controller=>"orders", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b4db40 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b4daa0 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6b4d9ec @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b4d94c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b4d8d4 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"orders"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b44c20 @requirements={:controller=>"orders", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b479ac @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b478e4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6b47614 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b47560 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b474c0 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"orders"}, @to_s="PUT    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b3cd04 @requirements={:controller=>"orders", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b3dee8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b3de48 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6b3dd94 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b3dcf4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b3dc7c @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"orders"}, @to_s="DELETE /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"orders"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b37520 @requirements={:controller=>"products", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b37d04 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b37c64 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb6b37bec @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"products"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b3142c @requirements={:controller=>"products", :action=>"create"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b31d28 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b31c24 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb6b31b98 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"create", :controller=>"products"}, @to_s="POST   /products(.:format)?                     {:controller=>\"products\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:action=>"create", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b29fec @requirements={:controller=>"products", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b2c594 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b2c3b4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6b2c2ec @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b2bb80 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6b2b7fc @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"products"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b2256c @requirements={:controller=>"products", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b22f6c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b22eb8 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6b22e04 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b22d50 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6b22c88 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b22be8 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6b22b5c @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"products"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b1ef5c @requirements={:controller=>"products", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b1f718 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b1f664 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6b1f5b0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b1f510 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b1f498 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"products"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b198a4 @requirements={:controller=>"products", :action=>"update"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b1a114 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b1a060 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6b19f98 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b19ef8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b19e6c @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"update", :controller=>"products"}, @to_s="PUT    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:action=>"update", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b15218 @requirements={:controller=>"products", :action=>"destroy"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b16d0c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6b16c44 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6b16a64 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b169c4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6b1694c @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"destroy", :controller=>"products"}, @to_s="DELETE /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:action=>"destroy", :controller=>"products"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b1248c @requirements={}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b12a04 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb6b12964 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb6b128b0 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b12810 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0xb6b1275c @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b126bc @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0xb6b12608 @is_optional=true, @raw=true, @value="/">], @controller_requirement=nil, @significant_keys=[:controller, :action, :id], @parameter_shell={}, @to_s="ANY    /:controller/:action/:id/                {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true>, #<ActionController::Routing::Route:0xb6b0bda8 @requirements={}, @segments=[#<ActionController::Routing::DividerSegment:0xb6b0d108 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb6b0d068 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb6b0ce4c @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b0cd34 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0xb6b0cb7c @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6b0cadc @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0xb6b0c5dc @is_optional=true, @key=:format>], @controller_requirement=nil, @significant_keys=[:controller, :action, :id, :format], @parameter_shell={}, @to_s="ANY    /:controller/:action/:id(.:format)?      {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true>], @routes_by_controller=nil, @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0xb6cdfbac @routes={:edit_line_item=>#<ActionController::Routing::Route:0xb6c94210 @requirements={:controller=>"line_items", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c94b70 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c94ad0 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6c94a1c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c9497c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6c948c8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c94828 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6c947b0 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"line_items"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"line_items"}, @matching_prepared=true>, :line_items=>#<ActionController::Routing::Route:0xb6ccac70 @requirements={:controller=>"line_items", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6ccb148 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ccb0a8 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb6ccb030 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"line_items"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"line_items"}, @matching_prepared=true>, :new_user=>#<ActionController::Routing::Route:0xb6d2c574 @requirements={:controller=>"users", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6d2d104 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6d2d028 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6d2cf60 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6d2cec0 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6d2ce34 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"users"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"users"}, @matching_prepared=true>, :orders=>#<ActionController::Routing::Route:0xb6c74cd0 @requirements={:controller=>"orders", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c751a8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c75108 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb6c75090 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"orders"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"orders"}, @matching_prepared=true>, :line_item=>#<ActionController::Routing::Route:0xb6c8ae40 @requirements={:controller=>"line_items", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c8b688 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c8b5d4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6c8b520 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c8b46c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c8b3e0 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"line_items"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"line_items"}, @matching_prepared=true>, :edit_user=>#<ActionController::Routing::Route:0xb6cf3440 @requirements={:controller=>"users", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cf635c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cf61a4 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6cf5ed4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6cf5d80 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6cf536c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cf4f34 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6cf4ebc @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"users"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"users"}, @matching_prepared=true>, :new_product=>#<ActionController::Routing::Route:0xb6c0bdc0 @requirements={:controller=>"products", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c0c9c8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c0c720 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6c0c658 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c0c3ec @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6c0c34c @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"products"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"products"}, @matching_prepared=true>, :products=>#<ActionController::Routing::Route:0xb6c260f8 @requirements={:controller=>"products", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c26f6c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c26bc0 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb6c26954 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"products"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"products"}, @matching_prepared=true>, :product=>#<ActionController::Routing::Route:0xb6bef5e4 @requirements={:controller=>"products", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6befd8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6befcec @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6befc38 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6befb98 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6befb20 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"products"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"products"}, @matching_prepared=true>, :user=>#<ActionController::Routing::Route:0xb6ce640c @requirements={:controller=>"users", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6ce6bb4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6ce6b14 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb6ce6a60 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6ce69c0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6ce6948 @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"users"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"users"}, @matching_prepared=true>, :edit_product=>#<ActionController::Routing::Route:0xb6bf8824 @requirements={:controller=>"products", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6bfb3e4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bfb290 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb6bfade0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6bfad40 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6bfac8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6bfabec @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6bfab74 @is_optional=true, @key=:format>], @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"products"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"products"}, @matching_prepared=true>, :order=>#<ActionController::Routing::Route:0xb6c41394 @requirements={:controller=>"orders", :action=>"show"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c41bdc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c41b28 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c41a74 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c419c0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb6c41948 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"show", :controller=>"orders"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:action=>"show", :controller=>"orders"}, @matching_prepared=true>, :new_order=>#<ActionController::Routing::Route:0xb6c60de8 @requirements={:controller=>"orders", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c62148 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c62094 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c61d10 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c61c70 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6c61978 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"orders"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"orders"}, @matching_prepared=true>, :new_line_item=>#<ActionController::Routing::Route:0xb6cb5af0 @requirements={:controller=>"line_items", :action=>"new"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6cb6414 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cb6324 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb6cb6220 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6cb6158 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb6cb60a4 @is_optional=true, @key=:format>], @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"new", :controller=>"line_items"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:action=>"new", :controller=>"line_items"}, @matching_prepared=true>, :users=>#<ActionController::Routing::Route:0xb7253e30 @requirements={:controller=>"users", :action=>"index"}, @segments=[#<ActionController::Routing::DividerSegment:0xb725e8bc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb725d570 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb725ae9c @is_optional=true, @key=:format>], @controller_requirement="users", @significant_keys=[:format, :controller, :action], @parameter_shell={:action=>"index", :controller=>"users"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:action=>"index", :controller=>"users"}, @matching_prepared=true>, :edit_order=>#<ActionController::Routing::Route:0xb6c54f84 @requirements={:controller=>"orders", :action=>"edit"}, @segments=[#<ActionController::Routing::DividerSegment:0xb6c5590c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c5586c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb6c557b8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb6c55718 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb6c55664 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb6c555c4 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb6c55538 @is_optional=true, @key=:format>], @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @parameter_shell={:action=>"edit", :controller=>"orders"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:action=>"edit", :controller=>"orders"}, @matching_prepared=true>}, @module=#<Module:0xb6cdfb48>, @helpers=[:hash_for_users_url, :users_url, :hash_for_users_path, :users_path, :hash_for_new_user_url, :new_user_url, :hash_for_new_user_path, :new_user_path, :hash_for_edit_user_url, :edit_user_url, :hash_for_edit_user_path, :edit_user_path, :hash_for_user_url, :user_url, :hash_for_user_path, :user_path, :hash_for_line_items_url, :line_items_url, :hash_for_line_items_path, :line_items_path, :hash_for_new_line_item_url, :new_line_item_url, :hash_for_new_line_item_path, :new_line_item_path, :hash_for_edit_line_item_url, :edit_line_item_url, :hash_for_edit_line_item_path, :edit_line_item_path, :hash_for_line_item_url, :line_item_url, :hash_for_line_item_path, :line_item_path, :hash_for_orders_url, :orders_url, :hash_for_orders_path, :orders_path, :hash_for_new_order_url, :new_order_url, :hash_for_new_order_path, :new_order_path, :hash_for_edit_order_url, :edit_order_url, :hash_for_edit_order_path, :edit_order_path, :hash_for_order_url, :order_url, :hash_for_order_path, :order_path, :hash_for_products_url, :products_url, :hash_for_products_path, :products_path, :hash_for_new_product_url, :new_product_url, :hash_for_new_product_path, :new_product_path, :hash_for_edit_product_url, :edit_product_url, :hash_for_edit_product_path, :edit_product_path, :hash_for_product_url, :product_url, :hash_for_product_path, :product_path]>, @builder=#<ActionController::Routing::RouteBuilder:0xb72603c4 @nonseparator_regexp=/\A([^\/\.\?]+)/, @separator_regexp=/[\/\.\?]/, @optional_separators=["/"], @interval_regexp=/(.*?)((?-mix:[\/\.\?])|$)/, @separators=["/", ".", "?"]>, @combined_regexp=nil, @configuration_files=["/home/rubys/git/awdwr/work-239/depot/config/routes.rb"]>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0xb69113cc @request_count=0, @application=#<ActionController::Dispatcher:0xb6911264 @output=#<IO:0xb743a564>>, @remote_addr="127.0.0.1", @response=nil, @cookies={}, @https=false, @result=nil, @controller=nil, @status_message=nil, @named_routes_configured=true, @status=nil, @path=nil, @accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @host="www.example.com", @request=nil, @headers=nil>
 
>> puts rs.routes
GET    /users(.:format)?                        {:controller=>"users", :action=>"index"}
POST   /users(.:format)?                        {:controller=>"users", :action=>"create"}
GET    /users/new(.:format)?                    {:controller=>"users", :action=>"new"}
GET    /users/:id/edit(.:format)?               {:controller=>"users", :action=>"edit"}
GET    /users/:id(.:format)?                    {:controller=>"users", :action=>"show"}
PUT    /users/:id(.:format)?                    {:controller=>"users", :action=>"update"}
DELETE /users/:id(.:format)?                    {:controller=>"users", :action=>"destroy"}
GET    /line_items(.:format)?                   {:controller=>"line_items", :action=>"index"}
POST   /line_items(.:format)?                   {:controller=>"line_items", :action=>"create"}
GET    /line_items/new(.:format)?               {:controller=>"line_items", :action=>"new"}
GET    /line_items/:id/edit(.:format)?          {:controller=>"line_items", :action=>"edit"}
GET    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"show"}
PUT    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"update"}
DELETE /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"destroy"}
GET    /orders(.:format)?                       {:controller=>"orders", :action=>"index"}
POST   /orders(.:format)?                       {:controller=>"orders", :action=>"create"}
GET    /orders/new(.:format)?                   {:controller=>"orders", :action=>"new"}
GET    /orders/:id/edit(.:format)?              {:controller=>"orders", :action=>"edit"}
GET    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"show"}
PUT    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"update"}
DELETE /orders/:id(.:format)?                   {:controller=>"orders", :action=>"destroy"}
GET    /products(.:format)?                     {:controller=>"products", :action=>"index"}
POST   /products(.:format)?                     {:controller=>"products", :action=>"create"}
GET    /products/new(.:format)?                 {:controller=>"products", :action=>"new"}
GET    /products/:id/edit(.:format)?            {:controller=>"products", :action=>"edit"}
GET    /products/:id(.:format)?                 {:controller=>"products", :action=>"show"}
PUT    /products/:id(.:format)?                 {:controller=>"products", :action=>"update"}
DELETE /products/:id(.:format)?                 {:controller=>"products", :action=>"destroy"}
ANY    /:controller/:action/:id/                {}
ANY    /:controller/:action/:id(.:format)?      {}
GET    /users(.:format)?                        {:controller=>"users", :action=>"index"}
POST   /users(.:format)?                        {:controller=>"users", :action=>"create"}
GET    /users/new(.:format)?                    {:controller=>"users", :action=>"new"}
GET    /users/:id/edit(.:format)?               {:controller=>"users", :action=>"edit"}
GET    /users/:id(.:format)?                    {:controller=>"users", :action=>"show"}
PUT    /users/:id(.:format)?                    {:controller=>"users", :action=>"update"}
DELETE /users/:id(.:format)?                    {:controller=>"users", :action=>"destroy"}
GET    /line_items(.:format)?                   {:controller=>"line_items", :action=>"index"}
POST   /line_items(.:format)?                   {:controller=>"line_items", :action=>"create"}
GET    /line_items/new(.:format)?               {:controller=>"line_items", :action=>"new"}
GET    /line_items/:id/edit(.:format)?          {:controller=>"line_items", :action=>"edit"}
GET    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"show"}
PUT    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"update"}
DELETE /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"destroy"}
GET    /orders(.:format)?                       {:controller=>"orders", :action=>"index"}
POST   /orders(.:format)?                       {:controller=>"orders", :action=>"create"}
GET    /orders/new(.:format)?                   {:controller=>"orders", :action=>"new"}
GET    /orders/:id/edit(.:format)?              {:controller=>"orders", :action=>"edit"}
GET    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"show"}
PUT    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"update"}
DELETE /orders/:id(.:format)?                   {:controller=>"orders", :action=>"destroy"}
GET    /products(.:format)?                     {:controller=>"products", :action=>"index"}
POST   /products(.:format)?                     {:controller=>"products", :action=>"create"}
GET    /products/new(.:format)?                 {:controller=>"products", :action=>"new"}
GET    /products/:id/edit(.:format)?            {:controller=>"products", :action=>"edit"}
GET    /products/:id(.:format)?                 {:controller=>"products", :action=>"show"}
PUT    /products/:id(.:format)?                 {:controller=>"products", :action=>"update"}
DELETE /products/:id(.:format)?                 {:controller=>"products", :action=>"destroy"}
ANY    /:controller/:action/:id/                {}
ANY    /:controller/:action/:id(.:format)?      {}
=> nil
>> rs.recognize_path "/store"
=> {:action=>"index", :controller=>"store"}
>> rs.recognize_path "/store/add_to_cart/1"
=> {:id=>"1", :action=>"add_to_cart", :controller=>"store"}
>> rs.recognize_path "/store/add_to_cart/1.xml"
=> {:format=>"xml", :id=>"1", :action=>"add_to_cart", :controller=>"store"}
>> rs.generate :controller => :store
=> "/store"
>> rs.generate :controller => :store, :id => 123
=> "/store/index/123"
>> rs.recognize_path "/coupon/show/1"
=> {:id=>"1", :action=>"show", :controller=>"coupon"}
>> load "config/routes.rb"
=> []
>> rs.recognize_path "/coupon/show/1"
=> {:id=>"1", :action=>"show", :controller=>"coupon"}
>> app.url_for :controller => :store, :action => :display, :id => 123
=> "http://www.example.com/store/display/123"
 
ruby -rubygems /home/rubys/git/rails/railties/bin/rails view
      create  
      create  app/controllers
      create  app/helpers
      create  app/models
      create  app/views/layouts
      create  config/environments
      create  config/initializers
      create  config/locales
      create  db
      create  doc
      create  lib
      create  lib/tasks
      create  log
      create  public/images
      create  public/javascripts
      create  public/stylesheets
      create  script/performance
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/performance
      create  test/unit
      create  vendor
      create  vendor/plugins
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  Rakefile
      create  README
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  config/database.yml
      create  config/routes.rb
      create  config/locales/en.yml
      create  db/seeds.rb
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/new_rails_defaults.rb
      create  config/initializers/session_store.rb
      create  config/initializers/cookie_verification_secret.rb
      create  config/environment.rb
      create  config/boot.rb
      create  config/environments/production.rb
      create  config/environments/development.rb
      create  config/environments/test.rb
      create  script/about
      create  script/console
      create  script/dbconsole
      create  script/destroy
      create  script/generate
      create  script/runner
      create  script/server
      create  script/plugin
      create  script/performance/benchmarker
      create  script/performance/profiler
      create  test/test_helper.rb
      create  test/performance/browsing_test.rb
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/index.html
      create  public/favicon.ico
      create  public/robots.txt
      create  public/images/rails.png
      create  public/javascripts/prototype.js
      create  public/javascripts/effects.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/controls.js
      create  public/javascripts/application.js
      create  doc/README_FOR_APP
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
cp -v /home/rubys/git/awdwr/data/code/e1/views/app/controllers/*.rb app/controllers
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/array_controller.rb' -> `app/controllers/array_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/article_controller.rb' -> `app/controllers/article_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/blog1_controller.rb' -> `app/controllers/blog1_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/blog2_controller.rb' -> `app/controllers/blog2_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/blog_controller.rb' -> `app/controllers/blog_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/builder_controller.rb' -> `app/controllers/builder_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/form_controller.rb' -> `app/controllers/form_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/form_for_controller.rb' -> `app/controllers/form_for_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/pager_controller.rb' -> `app/controllers/pager_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/partial_controller.rb' -> `app/controllers/partial_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/products_controller.rb' -> `app/controllers/products_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/rhtml_controller.rb' -> `app/controllers/rhtml_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/test_controller.rb' -> `app/controllers/test_controller.rb'
`/home/rubys/git/awdwr/data/code/e1/views/app/controllers/upload_controller.rb' -> `app/controllers/upload_controller.rb'
irb e1/routing/config2/routes_for_blog.rb
>> require 'rubygems'
=> false
>> require 'action_controller'
=> true
 
>> ActionController::Base.session_store = nil
=> nil
>> ActionController::Routing.use_controllers! [ "article", "blog" ]
=> ["article", "blog"]
>> rs = ActionController::Routing::Routes
=> #<ActionController::Routing::RouteSet:0xb701bf14 @configuration_files=[], @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0xb7001b78 @helpers=[], @module=#<Module:0xb7001ac4>, @routes={}>, @routes=[]>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0xb6e31a14 @request=nil, @status_message=nil, @named_routes_configured=true, @accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @controller=nil, @result=nil, @headers=nil, @cookies={}, @request_count=0, @remote_addr="127.0.0.1", @status=nil, @response=nil, @host="www.example.com", @https=false, @path=nil, @application=#<ActionController::Dispatcher:0xb6e2834c @app=#<Rack::Lock:0xb6e1bffc @app=#<ActionController::Failsafe:0xb6e1c0d8 @app=#<ActionController::ParamsParser:0xb6e1c1b4 @app=#<Rack::MethodOverride:0xb6e1c290 @app=#<Rack::Head:0xb6e1c36c @app=#<ActionController::StringCoercion:0xb6e1c5ec @app=#<Proc:0xb6e2e8b4@/home/rubys/git/awdwr/work-239/view/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130>>>>>>, @lock=#<Mutex:0xb6e1bf48>>, @output=#<IO:0xb7445568>>>
 
?> ActionController::Routing::Routes.draw do |map| 
 
?>   # Straight 'http://my.app/blog/' displays the index 
?>   map.connect "blog/", 
?>               :controller => "blog", 
?>               :action => "index" 
 
?>   # Return articles for a year, year/month, or year/month/day 
?>   map.connect "blog/:year/:month/:day", 
?>               :controller => "blog", 
?>               :action => "show_date", 
?>               :requirements => { :year => /(19|20)\d\d/,
?>                                  :month => /[01]?\d/, 
?>                                  :day => /[0-3]?\d/}, 
?>               :day => nil, 
?>               :month => nil 
 
>>   # Show an article identified by an id 
?>   map.connect "blog/show/:id", 
?>               :controller => "blog", 
?>               :action => "show", 
?>               :id => /\d+/ 
 
>>   # Regular Rails routing for admin stuff 
?>   map.connect "blog/:controller/:action/:id" 
 
>>   # Catchall so we can gracefully handle badly formed requests 
?>   map.connect "*anything", 
?>               :controller => "blog", 
?>               :action => "unknown_request" 
>> end
=> [ActionController::Base, ActionView::Base]
 
>> rs.recognize_path "/blog"
=> {:action=>"index", :controller=>"blog"}
>> rs.recognize_path "/blog/show/123"
=> {:action=>"show", :controller=>"blog", :id=>"123"}
>> rs.recognize_path "/blog/2004"
=> {:year=>"2004", :action=>"show_date", :controller=>"blog"}
>> rs.recognize_path "/blog/2004/12"
=> {:month=>"12", :year=>"2004", :action=>"show_date", :controller=>"blog"}
>> rs.recognize_path "/blog/2004/12/25"
=> {:month=>"12", :year=>"2004", :action=>"show_date", :day=>"25", :controller=>"blog"}
>> rs.recognize_path "/blog/article/edit/123"
=> {:action=>"edit", :controller=>"article", :id=>"123"}
>> rs.recognize_path "/blog/article/show_stats"
=> {:action=>"show_stats", :controller=>"article"}
>> rs.recognize_path "/blog/wibble"
=> {:action=>"unknown_request", :anything=>["blog", "wibble"], :controller=>"blog"}
>> rs.recognize_path "/junk"
=> {:action=>"unknown_request", :anything=>["junk"], :controller=>"blog"}
 
>> last_request = rs.recognize_path "/blog/2006/07/28"
=> {:month=>"07", :year=>"2006", :action=>"show_date", :day=>"28", :controller=>"blog"}
>> rs.generate({:day => 25}, last_request)
=> "/blog/2006/07/25"
>> rs.generate({:year => 2005}, last_request)
=> "/blog/2005"
 
>> app.url_for :controller => 'blog', :action => 'show_date', :year => 2002
=> "http://www.example.com/blog/2002"
>> app.url_for :controller => 'blog', :action => 'show_date', :overwrite_params => {:year => "2002" }
DEPRECATION WARNING: The :overwrite_params option is deprecated. Specify all the necessary parameters instead. (called from url_for at /home/rubys/git/awdwr/work-239/view/vendor/rails/actionpack/lib/action_controller/integration.rb:244)
=> "http://www.example.com/blog/2002"
 

23.3 Helpers for Formatting, Linking, and Pagination 21 Action Controller: Routing and URLs