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:0x8b5bf70 @configuration_files=["/home/rubys/git/awdwr/work-191-239/depot/config/routes.rb"], @routes=[#<ActionController::Routing::Route:0x9b92368 @segments=[#<ActionController::Routing::DividerSegment:0x9b928e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b927c8 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x9b926e8 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"index"}, @defaults={:controller=>"users", :action=>"index"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x9b096ec @segments=[#<ActionController::Routing::DividerSegment:0x9b0a1f8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b09fac @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x9b09adc @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"create"}, @defaults={:controller=>"users", :action=>"create"}, @to_s="POST   /users(.:format)?                        {:controller=>\"users\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x9a69b0c @segments=[#<ActionController::Routing::DividerSegment:0x9a6a538 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a6a3e8 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x9a6a27c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a6a148 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9a6a068 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"new"}, @defaults={:controller=>"users", :action=>"new"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x991e048 @segments=[#<ActionController::Routing::DividerSegment:0x991ed68 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x991ec6c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x991eb54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x991ea58 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x991e940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x991e550 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x991e48c @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"edit"}, @defaults={:controller=>"users", :action=>"edit"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x981dc40 @segments=[#<ActionController::Routing::DividerSegment:0x981e554 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x981e458 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x981e340 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x981e244 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x981e180 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"show"}, @defaults={:controller=>"users", :action=>"show"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x972bd08 @segments=[#<ActionController::Routing::DividerSegment:0x972e174 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x972d684 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x972c910 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x972c6fc @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x972c558 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"update"}, @defaults={:controller=>"users", :action=>"update"}, @to_s="PUT    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x96f1b90 @segments=[#<ActionController::Routing::DividerSegment:0x96f5d68 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x96f5c6c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x96f3e58 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x96f36b0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x96f3288 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"destroy"}, @defaults={:controller=>"users", :action=>"destroy"}, @to_s="DELETE /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x9674a54 @segments=[#<ActionController::Routing::DividerSegment:0x9674f94 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9674e7c @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x9674d9c @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"index"}, @defaults={:controller=>"line_items", :action=>"index"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x92f8c80 @segments=[#<ActionController::Routing::DividerSegment:0x92fcc28 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x92fc42c @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x92fbd10 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"create"}, @defaults={:controller=>"line_items", :action=>"create"}, @to_s="POST   /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x9279994 @segments=[#<ActionController::Routing::DividerSegment:0x927c3cc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x927bfdc @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x927b604 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x927ad60 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x927a6d0 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"new"}, @defaults={:controller=>"line_items", :action=>"new"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x8c1da40 @segments=[#<ActionController::Routing::DividerSegment:0x8c24e30 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c24be4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8c24928 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8c24730 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x8c245e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c24490 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x8c23de4 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"edit"}, @defaults={:controller=>"line_items", :action=>"edit"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x899b42c @segments=[#<ActionController::Routing::DividerSegment:0x899be58 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x899bd24 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x899bbd4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x899bad8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x899b9f8 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"show"}, @defaults={:controller=>"line_items", :action=>"show"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x88ead18 @segments=[#<ActionController::Routing::DividerSegment:0x88eb798 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x88eb62c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x88eb4a4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x88eb338 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x88eb258 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"update"}, @defaults={:controller=>"line_items", :action=>"update"}, @to_s="PUT    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x883b9d0 @segments=[#<ActionController::Routing::DividerSegment:0x884212c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x883f72c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x883f304 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x883ea98 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x883e7a4 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"destroy"}, @defaults={:controller=>"line_items", :action=>"destroy"}, @to_s="DELETE /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x8772598 @segments=[#<ActionController::Routing::DividerSegment:0x8776984 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8774b38 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x8774550 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"index"}, @defaults={:controller=>"orders", :action=>"index"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x86681c4 @segments=[#<ActionController::Routing::DividerSegment:0x8668918 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x86687ac @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x8668694 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"create"}, @defaults={:controller=>"orders", :action=>"create"}, @to_s="POST   /orders(.:format)?                       {:controller=>\"orders\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x8638734 @segments=[#<ActionController::Routing::DividerSegment:0x8639c18 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8639a04 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x86397d4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x863956c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x8639358 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"new"}, @defaults={:controller=>"orders", :action=>"new"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x8486168 @segments=[#<ActionController::Routing::DividerSegment:0x8486c20 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8486b24 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x84869f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x84868d8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x84867a4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x84866a8 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x84865c8 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"edit"}, @defaults={:controller=>"orders", :action=>"edit"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x84358dc @segments=[#<ActionController::Routing::DividerSegment:0x84388e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x84379e4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x8436a78 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x84367a0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x84365c4 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"show"}, @defaults={:controller=>"orders", :action=>"show"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x8336c74 @segments=[#<ActionController::Routing::DividerSegment:0x8337a3c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x833787c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x83376f4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x833756c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8337438 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"update"}, @defaults={:controller=>"orders", :action=>"update"}, @to_s="PUT    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x8280b08 @segments=[#<ActionController::Routing::DividerSegment:0x82821ac @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x82819cc @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x82817f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8281668 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x82814fc @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"destroy"}, @defaults={:controller=>"orders", :action=>"destroy"}, @to_s="DELETE /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x9753308 @segments=[#<ActionController::Routing::DividerSegment:0x81af780 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x81af144 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x81aead0 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"index"}, @defaults={:controller=>"products", :action=>"index"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x957f204 @segments=[#<ActionController::Routing::DividerSegment:0x99a2718 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x99a261c @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x99a2558 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"create"}, @defaults={:controller=>"products", :action=>"create"}, @to_s="POST   /products(.:format)?                     {:controller=>\"products\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x957b95c @segments=[#<ActionController::Routing::DividerSegment:0x957c05c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x957bf60 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x957be48 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x957bd4c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x957bc88 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"new"}, @defaults={:controller=>"products", :action=>"new"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x9951fdc @segments=[#<ActionController::Routing::DividerSegment:0x9d00e10 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9d00d14 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9d00bfc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9d00b00 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x9d009e8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9d008ec @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x9d00828 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"edit"}, @defaults={:controller=>"products", :action=>"edit"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x98c6d88 @segments=[#<ActionController::Routing::DividerSegment:0x98c7568 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98c746c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x98c7354 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x98c7258 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x98c7194 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"show"}, @defaults={:controller=>"products", :action=>"show"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x99916f8 @segments=[#<ActionController::Routing::DividerSegment:0x9991ed8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9991ddc @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9991cc4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9991bc8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9991b04 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"update"}, @defaults={:controller=>"products", :action=>"update"}, @to_s="PUT    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x9947e34 @segments=[#<ActionController::Routing::DividerSegment:0x9bed4f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9bed3f4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9bed2dc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9bed1e0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9bed11c @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"destroy"}, @defaults={:controller=>"products", :action=>"destroy"}, @to_s="DELETE /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x96d4f50 @segments=[#<ActionController::Routing::DividerSegment:0x96d57d8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x96d56dc @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x96d55c4 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x96d54c8 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x96d53b0 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x96d52b4 @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0x96d519c @is_optional=true, @value="/", @raw=true>], @requirements={}, @conditions={}, @significant_keys=[:controller, :action, :id], @optimise=false, @controller_requirement=nil, @action_requirement=nil, @matching_prepared=true, @parameter_shell={}, @defaults={:action=>"index"}, @to_s="ANY    /:controller/:action/:id/                {}">, #<ActionController::Routing::Route:0x97c5e58 @segments=[#<ActionController::Routing::DividerSegment:0x97c66a8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x97c65ac @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x97c6494 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x97c6398 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x97c6280 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x97c6184 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0x97c60c0 @is_optional=true, @key=:format>], @requirements={}, @conditions={}, @significant_keys=[:controller, :action, :id, :format], @optimise=false, @controller_requirement=nil, @action_requirement=nil, @matching_prepared=true, @parameter_shell={}, @defaults={:action=>"index"}, @to_s="ANY    /:controller/:action/:id(.:format)?      {}">, #<ActionController::Routing::Route:0x8850c1c @segments=[#<ActionController::Routing::DividerSegment:0x8851108 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x885100c @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x8850f48 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"index"}, @defaults={:controller=>"users", :action=>"index"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x9bcc6f4 @segments=[#<ActionController::Routing::DividerSegment:0x9bccbe0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9bccae4 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x9bcca20 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"create"}, @defaults={:controller=>"users", :action=>"create"}, @to_s="POST   /users(.:format)?                        {:controller=>\"users\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x9be9a34 @segments=[#<ActionController::Routing::DividerSegment:0x9bea134 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9bea038 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x9be9f20 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9be9e24 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9be9d60 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"new"}, @defaults={:controller=>"users", :action=>"new"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x956d550 @segments=[#<ActionController::Routing::DividerSegment:0x956df44 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x956de48 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x956dd30 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x956dc34 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x956db1c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x956da20 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x956d95c @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"edit"}, @defaults={:controller=>"users", :action=>"edit"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x95fb9d8 @segments=[#<ActionController::Routing::DividerSegment:0x95fc1b8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95fc0bc @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x95fbfa4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95fbea8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x95fbde4 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"show"}, @defaults={:controller=>"users", :action=>"show"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x9afe760 @segments=[#<ActionController::Routing::DividerSegment:0x9afef40 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9afee44 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x9afed2c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9afec30 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9afeb6c @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"update"}, @defaults={:controller=>"users", :action=>"update"}, @to_s="PUT    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x95a7d74 @segments=[#<ActionController::Routing::DividerSegment:0x95a8554 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95a8458 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x95a8340 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95a8244 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x95a8180 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"destroy"}, @defaults={:controller=>"users", :action=>"destroy"}, @to_s="DELETE /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x9507a5c @segments=[#<ActionController::Routing::DividerSegment:0x9507f48 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9507e4c @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x9507d88 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"index"}, @defaults={:controller=>"line_items", :action=>"index"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x9481690 @segments=[#<ActionController::Routing::DividerSegment:0x9481b7c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9481a80 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x94819bc @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"create"}, @defaults={:controller=>"line_items", :action=>"create"}, @to_s="POST   /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x947de04 @segments=[#<ActionController::Routing::DividerSegment:0x947e504 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x947e408 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x947e2f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x947e1f4 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x947e130 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"new"}, @defaults={:controller=>"line_items", :action=>"new"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x97cd3d0 @segments=[#<ActionController::Routing::DividerSegment:0x97cddc4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x97cdcc8 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x97cdbb0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x97cdab4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x97cd99c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x97cd8a0 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x97cd7dc @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"edit"}, @defaults={:controller=>"line_items", :action=>"edit"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x9999648 @segments=[#<ActionController::Routing::DividerSegment:0x9999e28 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9999d2c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x9999c14 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9999b18 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9999a54 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"show"}, @defaults={:controller=>"line_items", :action=>"show"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x94eafdc @segments=[#<ActionController::Routing::DividerSegment:0x94eb7bc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x94eb6c0 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x94eb5a8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x94eb4ac @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x94eb3e8 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"update"}, @defaults={:controller=>"line_items", :action=>"update"}, @to_s="PUT    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x995db38 @segments=[#<ActionController::Routing::DividerSegment:0x995e318 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x995e21c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x995e104 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x995e008 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x995df44 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"destroy"}, @defaults={:controller=>"line_items", :action=>"destroy"}, @to_s="DELETE /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x9741d8c @segments=[#<ActionController::Routing::DividerSegment:0x98783d4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98782d8 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x9878214 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"index"}, @defaults={:controller=>"orders", :action=>"index"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x973e7a0 @segments=[#<ActionController::Routing::DividerSegment:0x973ec8c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x973eb90 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x973eacc @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"create"}, @defaults={:controller=>"orders", :action=>"create"}, @to_s="POST   /orders(.:format)?                       {:controller=>\"orders\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x98bf554 @segments=[#<ActionController::Routing::DividerSegment:0x98bfc54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98bfb58 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x98bfa40 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98bf944 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x98bf880 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"new"}, @defaults={:controller=>"orders", :action=>"new"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x9668558 @segments=[#<ActionController::Routing::DividerSegment:0x9668f4c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9668e50 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x9668d38 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9668c3c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x9668b24 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9668a28 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x9668964 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"edit"}, @defaults={:controller=>"orders", :action=>"edit"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x9b672e4 @segments=[#<ActionController::Routing::DividerSegment:0x9b67ac4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b679c8 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x9b678b0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9b677b4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9b676f0 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"show"}, @defaults={:controller=>"orders", :action=>"show"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x9c08488 @segments=[#<ActionController::Routing::DividerSegment:0x9c08c68 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9c08b6c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x9c08a54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9c08958 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9c08894 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"update"}, @defaults={:controller=>"orders", :action=>"update"}, @to_s="PUT    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x983e4c4 @segments=[#<ActionController::Routing::DividerSegment:0x983eca4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x983eba8 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x983ea90 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x983e994 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x983e8d0 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"destroy"}, @defaults={:controller=>"orders", :action=>"destroy"}, @to_s="DELETE /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x9a49e20 @segments=[#<ActionController::Routing::DividerSegment:0x9a4a30c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a4a210 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x9a4a14c @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"index"}, @defaults={:controller=>"products", :action=>"index"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}">, #<ActionController::Routing::Route:0x9964994 @segments=[#<ActionController::Routing::DividerSegment:0x9964e80 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9964d84 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x9964cc0 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"create"}, @conditions={:method=>:post}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="create", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"create"}, @defaults={:controller=>"products", :action=>"create"}, @to_s="POST   /products(.:format)?                     {:controller=>\"products\", :action=>\"create\"}">, #<ActionController::Routing::Route:0x9661248 @segments=[#<ActionController::Routing::DividerSegment:0x9661948 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x966184c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9661734 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9661638 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9661574 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"new"}, @defaults={:controller=>"products", :action=>"new"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}">, #<ActionController::Routing::Route:0x9b97ebc @segments=[#<ActionController::Routing::DividerSegment:0x9b988b0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b987b4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9b9869c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9b985a0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x9b98488 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b9838c @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x9b982c8 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"edit"}, @defaults={:controller=>"products", :action=>"edit"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}">, #<ActionController::Routing::Route:0x9b79d0c @segments=[#<ActionController::Routing::DividerSegment:0x9b7a4ec @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b7a3f0 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9b7a2d8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9b7a1dc @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9b7a118 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"show"}, @defaults={:controller=>"products", :action=>"show"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}">, #<ActionController::Routing::Route:0x97d58d0 @segments=[#<ActionController::Routing::DividerSegment:0x97d60b0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x97d5fb4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x97d5e9c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x97d5da0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x97d5cdc @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"update"}, @conditions={:method=>:put}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="update", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"update"}, @defaults={:controller=>"products", :action=>"update"}, @to_s="PUT    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"update\"}">, #<ActionController::Routing::Route:0x9bdf1e0 @segments=[#<ActionController::Routing::DividerSegment:0x9bdf9c0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9bdf8c4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9bdf7ac @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9bdf6b0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9bdf5ec @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"destroy"}, @conditions={:method=>:delete}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="destroy", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"destroy"}, @defaults={:controller=>"products", :action=>"destroy"}, @to_s="DELETE /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"destroy\"}">, #<ActionController::Routing::Route:0x9c92524 @segments=[#<ActionController::Routing::DividerSegment:0x9c92dac @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x9c92cb0 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x9c92b98 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9c92a9c @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x9c92984 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9c92888 @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0x9c92770 @is_optional=true, @value="/", @raw=true>], @requirements={}, @conditions={}, @significant_keys=[:controller, :action, :id], @optimise=false, @controller_requirement=nil, @action_requirement=nil, @matching_prepared=true, @parameter_shell={}, @defaults={:action=>"index"}, @to_s="ANY    /:controller/:action/:id/                {}">, #<ActionController::Routing::Route:0x9894ab8 @segments=[#<ActionController::Routing::DividerSegment:0x9895308 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x989520c @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x98950f4 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9894ff8 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x9894ee0 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9894de4 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0x9894d20 @is_optional=true, @key=:format>], @requirements={}, @conditions={}, @significant_keys=[:controller, :action, :id, :format], @optimise=false, @controller_requirement=nil, @action_requirement=nil, @matching_prepared=true, @parameter_shell={}, @defaults={:action=>"index"}, @to_s="ANY    /:controller/:action/:id(.:format)?      {}">], @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0x8b5bf1c @routes={:users=>#<ActionController::Routing::Route:0x9b92368 @segments=[#<ActionController::Routing::DividerSegment:0x9b928e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9b927c8 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x9b926e8 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"index"}, @defaults={:controller=>"users", :action=>"index"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}">, :new_user=>#<ActionController::Routing::Route:0x9a69b0c @segments=[#<ActionController::Routing::DividerSegment:0x9a6a538 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a6a3e8 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x9a6a27c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a6a148 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9a6a068 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="users", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"new"}, @defaults={:controller=>"users", :action=>"new"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}">, :edit_user=>#<ActionController::Routing::Route:0x991e048 @segments=[#<ActionController::Routing::DividerSegment:0x991ed68 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x991ec6c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x991eb54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x991ea58 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x991e940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x991e550 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x991e48c @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"edit"}, @defaults={:controller=>"users", :action=>"edit"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}">, :user=>#<ActionController::Routing::Route:0x981dc40 @segments=[#<ActionController::Routing::DividerSegment:0x981e554 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x981e458 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x981e340 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x981e244 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x981e180 @is_optional=true, @key=:format>], @requirements={:controller=>"users", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="users", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"users", :action=>"show"}, @defaults={:controller=>"users", :action=>"show"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}">, :line_items=>#<ActionController::Routing::Route:0x9674a54 @segments=[#<ActionController::Routing::DividerSegment:0x9674f94 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9674e7c @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x9674d9c @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"index"}, @defaults={:controller=>"line_items", :action=>"index"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}">, :new_line_item=>#<ActionController::Routing::Route:0x9279994 @segments=[#<ActionController::Routing::DividerSegment:0x927c3cc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x927bfdc @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x927b604 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x927ad60 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x927a6d0 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="line_items", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"new"}, @defaults={:controller=>"line_items", :action=>"new"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}">, :edit_line_item=>#<ActionController::Routing::Route:0x8c1da40 @segments=[#<ActionController::Routing::DividerSegment:0x8c24e30 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c24be4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8c24928 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8c24730 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x8c245e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c24490 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x8c23de4 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"edit"}, @defaults={:controller=>"line_items", :action=>"edit"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}">, :line_item=>#<ActionController::Routing::Route:0x899b42c @segments=[#<ActionController::Routing::DividerSegment:0x899be58 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x899bd24 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x899bbd4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x899bad8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x899b9f8 @is_optional=true, @key=:format>], @requirements={:controller=>"line_items", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="line_items", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"line_items", :action=>"show"}, @defaults={:controller=>"line_items", :action=>"show"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}">, :orders=>#<ActionController::Routing::Route:0x8772598 @segments=[#<ActionController::Routing::DividerSegment:0x8776984 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8774b38 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x8774550 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"index"}, @defaults={:controller=>"orders", :action=>"index"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}">, :new_order=>#<ActionController::Routing::Route:0x8638734 @segments=[#<ActionController::Routing::DividerSegment:0x8639c18 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8639a04 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x86397d4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x863956c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x8639358 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="orders", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"new"}, @defaults={:controller=>"orders", :action=>"new"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}">, :edit_order=>#<ActionController::Routing::Route:0x8486168 @segments=[#<ActionController::Routing::DividerSegment:0x8486c20 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8486b24 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x84869f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x84868d8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x84867a4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x84866a8 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x84865c8 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"edit"}, @defaults={:controller=>"orders", :action=>"edit"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}">, :order=>#<ActionController::Routing::Route:0x84358dc @segments=[#<ActionController::Routing::DividerSegment:0x84388e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x84379e4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x8436a78 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x84367a0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x84365c4 @is_optional=true, @key=:format>], @requirements={:controller=>"orders", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="orders", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"orders", :action=>"show"}, @defaults={:controller=>"orders", :action=>"show"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}">, :products=>#<ActionController::Routing::Route:0x9753308 @segments=[#<ActionController::Routing::DividerSegment:0x81af780 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x81af144 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x81aead0 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"index"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="index", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"index"}, @defaults={:controller=>"products", :action=>"index"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}">, :new_product=>#<ActionController::Routing::Route:0x957b95c @segments=[#<ActionController::Routing::DividerSegment:0x957c05c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x957bf60 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x957be48 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x957bd4c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x957bc88 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"new"}, @conditions={:method=>:get}, @significant_keys=[:format, :controller, :action], @optimise=true, @controller_requirement="products", @action_requirement="new", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"new"}, @defaults={:controller=>"products", :action=>"new"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}">, :edit_product=>#<ActionController::Routing::Route:0x9951fdc @segments=[#<ActionController::Routing::DividerSegment:0x9d00e10 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9d00d14 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9d00bfc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9d00b00 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x9d009e8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9d008ec @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x9d00828 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"edit"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="edit", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"edit"}, @defaults={:controller=>"products", :action=>"edit"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}">, :product=>#<ActionController::Routing::Route:0x98c6d88 @segments=[#<ActionController::Routing::DividerSegment:0x98c7568 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98c746c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x98c7354 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x98c7258 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x98c7194 @is_optional=true, @key=:format>], @requirements={:controller=>"products", :action=>"show"}, @conditions={:method=>:get}, @significant_keys=[:id, :format, :controller, :action], @optimise=false, @controller_requirement="products", @action_requirement="show", @matching_prepared=true, @parameter_shell={:controller=>"products", :action=>"show"}, @defaults={:controller=>"products", :action=>"show"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}">}, @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], @module=#<Module:0x8b5bec8>>, @combined_regexp=nil, @routes_by_controller=nil, @builder=#<ActionController::Routing::RouteBuilder:0x9b92f54 @separators=["/", ".", "?"], @optional_separators=["/"], @separator_regexp=/[\/\.\?]/, @nonseparator_regexp=/\A([^\/\.\?]+)/, @interval_regexp=/(.*?)((?-mix:[\/\.\?])|$)/>, @routes_last_modified=2010-06-06 18:13:13 -0400>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0x9bcd67c @application=#<ActionController::Dispatcher:0x9bcd4a0 @output=#<IO:<STDOUT>>>, @headers=nil, @path=nil, @status=nil, @status_message=nil, @result=nil, @https=false, @cookies={}, @response=nil, @request=nil, @controller=nil, @request_count=0, @host="www.example.com", @remote_addr="127.0.0.1", @accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @named_routes_configured=true>
 
>> 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"
=> {:controller=>"store", :action=>"index"}
>> rs.recognize_path "/store/add_to_cart/1"
=> {:controller=>"store", :action=>"add_to_cart", :id=>"1"}
>> rs.recognize_path "/store/add_to_cart/1.xml"
=> {:controller=>"store", :action=>"add_to_cart", :id=>"1", :format=>"xml"}
>> rs.generate :controller => :store
=> "/store"
>> rs.generate :controller => :store, :id => 123
=> "/store/index/123"
>> rs.recognize_path "/coupon/show/1"
=> {:controller=>"coupon", :action=>"show", :id=>"1"}
>> load "config/routes.rb"
=> []
>> rs.recognize_path "/coupon/show/1"
=> {:controller=>"coupon", :action=>"show", :id=>"1"}
>> 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:0x93e0700 @configuration_files=[], @routes=[], @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0x93e06ac @routes={}, @helpers=[], @module=#<Module:0x93e0658>>>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0x93b8e0c @application=#<ActionController::Dispatcher:0x9248cc0 @output=#<IO:<STDOUT>>, @app=#<Rack::Lock:0x93b83a8 @app=#<ActionController::Failsafe:0x93b8488 @app=#<ActionController::ParamsParser:0x93b854c @app=#<Rack::MethodOverride:0x93b8664 @app=#<Rack::Head:0x93b877c @app=#<ActionController::StringCoercion:0x93b8894 @app=#<Proc:0x9248c6c@/home/rubys/git/awdwr/work-191-239/view/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130 (lambda)>>>>>>, @lock=#<Mutex:0x93b838c>>>, @headers=nil, @path=nil, @status=nil, @status_message=nil, @result=nil, @https=false, @cookies={}, @response=nil, @request=nil, @controller=nil, @request_count=0, @host="www.example.com", @remote_addr="127.0.0.1", @accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @named_routes_configured=true>
 
?> 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"
=> {:controller=>"blog", :action=>"index"}
>> rs.recognize_path "/blog/show/123"
=> {:controller=>"blog", :action=>"show", :id=>"123"}
>> rs.recognize_path "/blog/2004"
=> {:controller=>"blog", :action=>"show_date", :year=>"2004"}
>> rs.recognize_path "/blog/2004/12"
=> {:controller=>"blog", :action=>"show_date", :year=>"2004", :month=>"12"}
>> rs.recognize_path "/blog/2004/12/25"
=> {:controller=>"blog", :action=>"show_date", :year=>"2004", :month=>"12", :day=>"25"}
>> rs.recognize_path "/blog/article/edit/123"
=> {:controller=>"article", :action=>"edit", :id=>"123"}
>> rs.recognize_path "/blog/article/show_stats"
=> {:controller=>"article", :action=>"show_stats"}
>> rs.recognize_path "/blog/wibble"
=> {:controller=>"blog", :action=>"unknown_request", :anything=>["blog", "wibble"]}
>> rs.recognize_path "/junk"
=> {:controller=>"blog", :action=>"unknown_request", :anything=>["junk"]}
 
>> last_request = rs.recognize_path "/blog/2006/07/28"
=> {:controller=>"blog", :action=>"show_date", :year=>"2006", :month=>"07", :day=>"28"}
>> 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-191-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