21.2 Routing Requests 21 Action Controller: Routing and URLs
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:0x863c8d4 @configuration_files=["/home/rubys/git/awdwr/work-191-235/depot/config/routes.rb"], @routes=[#<ActionController::Routing::Route:0x90bbc94 @segments=[#<ActionController::Routing::DividerSegment:0x90c2818 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x90c2428 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x90c22d8 @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:0x8e6f118 @segments=[#<ActionController::Routing::DividerSegment:0x8e70880 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8e701f0 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x8e6ff18 @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:0x8e49910 @segments=[#<ActionController::Routing::DividerSegment:0x8e4b388 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8e4b190 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x8e4afec @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8e4ae2c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x8e4ab8c @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:0x8c3e858 @segments=[#<ActionController::Routing::DividerSegment:0x8ca2784 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c86f10 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x8c867bc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8c86688 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x8c86180 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c85c08 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x8c84e08 @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:0x8a58fa8 @segments=[#<ActionController::Routing::DividerSegment:0x8acc754 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8a9b818 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x8a6f940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8a6ed54 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8a6db64 @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:0x88ba9c8 @segments=[#<ActionController::Routing::DividerSegment:0x88d63fc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x88bbe3c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x88bb100 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x88bb004 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x88baf40 @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:0x88aff0c @segments=[#<ActionController::Routing::DividerSegment:0x88b1770 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x88b155c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x88b11a4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x88b0938 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x88b06b4 @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:0x88a28e4 @segments=[#<ActionController::Routing::DividerSegment:0x88a2e5c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x88a2d44 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x88a2c80 @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:0x877cc64 @segments=[#<ActionController::Routing::DividerSegment:0x877d1c0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x877d0a8 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x877cfe4 @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:0x8777228 @segments=[#<ActionController::Routing::DividerSegment:0x87779ec @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x87778b8 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8777784 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x877766c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x87775a8 @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:0x8674260 @segments=[#<ActionController::Routing::DividerSegment:0x8677fd8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8676bb8 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8675610 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8675220 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x8674dc0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8674b20 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x867497c @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:0x8638884 @segments=[#<ActionController::Routing::DividerSegment:0x8639208 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x863910c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8638fa0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8638d70 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8638cac @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:0x8556584 @segments=[#<ActionController::Routing::DividerSegment:0x8558830 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8558520 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8557fc4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8557de8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8557b80 @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:0x851f988 @segments=[#<ActionController::Routing::DividerSegment:0x8520a60 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x852068c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x852030c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x852014c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x851fffc @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:0x84ad89c @segments=[#<ActionController::Routing::DividerSegment:0x84ae060 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x84adf64 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x84ade84 @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:0x83cab00 @segments=[#<ActionController::Routing::DividerSegment:0x83cb8e4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x83cb67c @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x83cb414 @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:0x8398f84 @segments=[#<ActionController::Routing::DividerSegment:0x839a9e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8399b8c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x8399940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8399764 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x83994e0 @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:0x82ddf58 @segments=[#<ActionController::Routing::DividerSegment:0x8329780 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x832964c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x8329400 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x83292e8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x83291b4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x832909c @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x8328fd8 @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:0x82417a4 @segments=[#<ActionController::Routing::DividerSegment:0x8262df0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8262958 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x82623a8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8261e84 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8261b3c @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:0x91e6828 @segments=[#<ActionController::Routing::DividerSegment:0x91e7008 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x91e6f0c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x91e6df4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x91e6cf8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x91e6c34 @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:0x98cdea0 @segments=[#<ActionController::Routing::DividerSegment:0x98ce680 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98ce584 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x98ce46c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x98ce370 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x98ce2ac @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:0x92acad4 @segments=[#<ActionController::Routing::DividerSegment:0x92acfc0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x92acec4 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x92ace00 @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:0x9346ec4 @segments=[#<ActionController::Routing::DividerSegment:0x93473b0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x93472b4 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x93471f0 @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:0x9470868 @segments=[#<ActionController::Routing::DividerSegment:0x9470f68 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9470e6c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9470d54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9470c58 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9470b94 @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:0x941e5b8 @segments=[#<ActionController::Routing::DividerSegment:0x941efac @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x941eeb0 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x941ed98 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x941ec9c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x941eb84 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x941ea88 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x941e9c4 @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:0x965da48 @segments=[#<ActionController::Routing::DividerSegment:0x965e228 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x965e12c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x965e014 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x965df18 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x965de54 @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:0x9a6717c @segments=[#<ActionController::Routing::DividerSegment:0x9a6795c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a67860 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9a67748 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9a6764c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9a67588 @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:0x9a6f510 @segments=[#<ActionController::Routing::DividerSegment:0x9a6fcf0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a6fbf4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9a6fadc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9a6f9e0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9a6f91c @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:0x96223ec @segments=[#<ActionController::Routing::DividerSegment:0x95c4458 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x95c435c @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x95c4244 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95c4148 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x95c4030 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95c3f34 @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0x95c3e1c @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:0x9624fac @segments=[#<ActionController::Routing::DividerSegment:0x96257fc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x9625700 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x96255e8 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x96254ec @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x96253d4 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x96252d8 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0x9625214 @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:0x97e3400 @segments=[#<ActionController::Routing::DividerSegment:0x97e38ec @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x97e37f0 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x97e372c @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:0x97eb2fc @segments=[#<ActionController::Routing::DividerSegment:0x97eb7e8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x97eb6ec @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x97eb628 @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:0x953bfbc @segments=[#<ActionController::Routing::DividerSegment:0x97e8138 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x97e803c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x97e7f24 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x953c3ac @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x953c2e8 @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:0x95431d0 @segments=[#<ActionController::Routing::DividerSegment:0x9538b04 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9538a08 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x95388f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95387f4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x95386dc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95385e0 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x953851c @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:0x998bd9c @segments=[#<ActionController::Routing::DividerSegment:0x998c57c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x998c480 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x998c368 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x998c26c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x998c1a8 @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:0x9995ba8 @segments=[#<ActionController::Routing::DividerSegment:0x9996388 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x999628c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x9996174 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9996078 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9995fb4 @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:0x98e2864 @segments=[#<ActionController::Routing::DividerSegment:0x98e3044 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98e2f48 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x98e2e30 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x98e2d34 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x98e2c70 @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:0x9a78da4 @segments=[#<ActionController::Routing::DividerSegment:0x98e9848 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x98e974c @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x98e9688 @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:0x9a75780 @segments=[#<ActionController::Routing::DividerSegment:0x9a75c6c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a75b70 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x9a75aac @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:0x9a7bfbc @segments=[#<ActionController::Routing::DividerSegment:0x9a7c6bc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a7c5c0 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x9a7c4a8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a7c3ac @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9a7c2e8 @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:0x9a85efc @segments=[#<ActionController::Routing::DividerSegment:0x9a868f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a867f4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x9a866dc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9a865e0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x9a864c8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a863cc @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x9a86308 @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:0x96dd9c8 @segments=[#<ActionController::Routing::DividerSegment:0x96de1a8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x96de0ac @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x96ddf94 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x96dde98 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x96dddd4 @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:0x957ddac @segments=[#<ActionController::Routing::DividerSegment:0x957e58c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x957e490 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x957e378 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x957e27c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x957e1b8 @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:0x9587cec @segments=[#<ActionController::Routing::DividerSegment:0x95884cc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95883d0 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x95882b8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95881bc @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x95880f8 @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:0x9714e30 @segments=[#<ActionController::Routing::DividerSegment:0x971531c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9715220 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x971515c @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:0x971fd4c @segments=[#<ActionController::Routing::DividerSegment:0x9720238 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x972013c @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x9720078 @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:0x903c724 @segments=[#<ActionController::Routing::DividerSegment:0x903ce24 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x903cd28 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x903cc10 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x903cb14 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x903ca50 @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:0x904391c @segments=[#<ActionController::Routing::DividerSegment:0x9044310 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9044214 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x90440fc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9044000 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x9043ee8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9043dec @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x9043d28 @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:0x904a628 @segments=[#<ActionController::Routing::DividerSegment:0x904ae08 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x904ad0c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x904abf4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x904aaf8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x904aa34 @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:0x9a414c0 @segments=[#<ActionController::Routing::DividerSegment:0x9a41ca0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a41ba4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x9a41a8c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9a41990 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9a418cc @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:0x9a58034 @segments=[#<ActionController::Routing::DividerSegment:0x9a49a4c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9a49950 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x9a58600 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9a58504 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9a58440 @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:0x9316ca8 @segments=[#<ActionController::Routing::DividerSegment:0x9317194 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9317098 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x9316fd4 @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:0x93216bc @segments=[#<ActionController::Routing::DividerSegment:0x9321ba8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9321aac @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x93219e8 @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:0x932b298 @segments=[#<ActionController::Routing::DividerSegment:0x932b998 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x932b89c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x932b784 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x932b688 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x932b5c4 @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:0x95dbd24 @segments=[#<ActionController::Routing::DividerSegment:0x9327de0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9327ce4 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9327bcc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9327ad0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x95dc2f0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95dc1f4 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x95dc130 @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:0x95e61a4 @segments=[#<ActionController::Routing::DividerSegment:0x95e6984 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95e6888 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x95e6770 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95e6674 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x95e65b0 @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:0x95f0a4c @segments=[#<ActionController::Routing::DividerSegment:0x95f122c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x95f1130 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x95f1018 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x95f0f1c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x95f0e58 @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:0x9757374 @segments=[#<ActionController::Routing::DividerSegment:0x9757b54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9757a58 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9757940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9757844 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x9757780 @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:0x975eb1c @segments=[#<ActionController::Routing::DividerSegment:0x975f3a4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x975f2a8 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x975f190 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x975f094 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x975ef7c @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x975ee80 @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0x975ed68 @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:0x9771a14 @segments=[#<ActionController::Routing::DividerSegment:0x9772264 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::ControllerSegment:0x9772168 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0x9772050 @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9771f54 @is_optional=true, @key=:action, @default="index">, #<ActionController::Routing::DividerSegment:0x9771e3c @is_optional=true, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x9771d40 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0x9771c7c @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:0x863c880 @routes={:users=>#<ActionController::Routing::Route:0x90bbc94 @segments=[#<ActionController::Routing::DividerSegment:0x90c2818 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x90c2428 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0x90c22d8 @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:0x8e49910 @segments=[#<ActionController::Routing::DividerSegment:0x8e4b388 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8e4b190 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x8e4afec @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8e4ae2c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x8e4ab8c @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:0x8c3e858 @segments=[#<ActionController::Routing::DividerSegment:0x8ca2784 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c86f10 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x8c867bc @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8c86688 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x8c86180 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8c85c08 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x8c84e08 @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:0x8a58fa8 @segments=[#<ActionController::Routing::DividerSegment:0x8acc754 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8a9b818 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0x8a6f940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8a6ed54 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8a6db64 @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:0x88a28e4 @segments=[#<ActionController::Routing::DividerSegment:0x88a2e5c @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x88a2d44 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0x88a2c80 @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:0x8777228 @segments=[#<ActionController::Routing::DividerSegment:0x87779ec @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x87778b8 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8777784 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x877766c @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x87775a8 @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:0x8674260 @segments=[#<ActionController::Routing::DividerSegment:0x8677fd8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8676bb8 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8675610 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8675220 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x8674dc0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8674b20 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x867497c @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:0x8638884 @segments=[#<ActionController::Routing::DividerSegment:0x8639208 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x863910c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0x8638fa0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8638d70 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8638cac @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:0x84ad89c @segments=[#<ActionController::Routing::DividerSegment:0x84ae060 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x84adf64 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0x84ade84 @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:0x8398f84 @segments=[#<ActionController::Routing::DividerSegment:0x839a9e0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8399b8c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x8399940 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8399764 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x83994e0 @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:0x82ddf58 @segments=[#<ActionController::Routing::DividerSegment:0x8329780 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x832964c @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x8329400 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x83292e8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x83291b4 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x832909c @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x8328fd8 @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:0x82417a4 @segments=[#<ActionController::Routing::DividerSegment:0x8262df0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x8262958 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0x82623a8 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x8261e84 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x8261b3c @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:0x92acad4 @segments=[#<ActionController::Routing::DividerSegment:0x92acfc0 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x92acec4 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0x92ace00 @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:0x9470868 @segments=[#<ActionController::Routing::DividerSegment:0x9470f68 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9470e6c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x9470d54 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x9470c58 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0x9470b94 @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:0x941e5b8 @segments=[#<ActionController::Routing::DividerSegment:0x941efac @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x941eeb0 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x941ed98 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x941ec9c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0x941eb84 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x941ea88 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0x941e9c4 @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:0x965da48 @segments=[#<ActionController::Routing::DividerSegment:0x965e228 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::StaticSegment:0x965e12c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0x965e014 @is_optional=false, @value="/", @raw=true>, #<ActionController::Routing::DynamicSegment:0x965df18 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0x965de54 @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:0x863c82c>>, @combined_regexp=nil, @routes_by_controller=nil, @builder=#<ActionController::Routing::RouteBuilder:0x90cc0ac @separators=["/", ".", "?"], @optional_separators=["/"], @separator_regexp=/[\/\.\?]/, @nonseparator_regexp=/\A([^\/\.\?]+)/, @interval_regexp=/(.*?)((?-mix:[\/\.\?])|$)/>, @routes_last_modified=2010-03-01 06:12:14 -0500>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0x994e5e4 @application=#<ActionController::Dispatcher:0x994e5c8 @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:0x82af6b8 @configuration_files=[], @routes=[], @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0x82af648 @routes={}, @helpers=[], @module=#<Module:0x82af5d8>>>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0x91afbbc @application=#<ActionController::Dispatcher:0x8f56834 @output=#<IO:<STDOUT>>, @app=#<Rack::Lock:0x924e8a0 @app=#<ActionController::Failsafe:0x924e980 @app=#<ActionController::ParamsParser:0x924ea44 @app=#<Rack::MethodOverride:0x924eb08 @app=#<Rack::Head:0x924ebcc @app=#<ActionController::StringCoercion:0x924ec90 @app=#<Proc:0x8f567c4@/home/rubys/git/awdwr/work-191-235/view/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130 (lambda)>>>>>>, @lock=#<Mutex:0x924e884>>>, @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" }
=> "http://www.example.com/blog/2002"
21.2 Routing Requests 21 Action Controller: Routing and URLs