The Depot Application

The Depot Application

21.2 Routing Requests 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:0xb7550444 @routes_by_controller=nil, @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0xb754a620 @module=#<Module:0xb754a5bc>, @routes={:edit_order=>#<ActionController::Routing::Route:0xb73231e4 @parameter_shell={:controller=>"orders", :action=>"edit"}, @requirements={:controller=>"orders", :action=>"edit"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"orders", :action=>"edit"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7323b30 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7323a90 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb73239dc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb732393c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb7323888 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73237e8 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb7323770 @is_optional=true, @key=:format>]>, :order=>#<ActionController::Routing::Route:0xb731d4c4 @parameter_shell={:controller=>"orders", :action=>"show"}, @requirements={:controller=>"orders", :action=>"show"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"orders", :action=>"show"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb731dc6c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb731dbcc @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb731db18 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb731da78 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb731da00 @is_optional=true, @key=:format>]>, :edit_line_item=>#<ActionController::Routing::Route:0xb7366de0 @parameter_shell={:controller=>"line_items", :action=>"edit"}, @requirements={:controller=>"line_items", :action=>"edit"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"line_items", :action=>"edit"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7368168 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7367f4c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb7367e34 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7367ccc @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb7367b8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7367a88 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb73679ac @is_optional=true, @key=:format>]>, :line_items=>#<ActionController::Routing::Route:0xb739035c @parameter_shell={:controller=>"line_items", :action=>"index"}, @requirements={:controller=>"line_items", :action=>"index"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"line_items", :action=>"index"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb739094c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7390794 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb739071c @is_optional=true, @key=:format>]>, :new_user=>#<ActionController::Routing::Route:0xb73b43d8 @parameter_shell={:controller=>"users", :action=>"new"}, @requirements={:controller=>"users", :action=>"new"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"users", :action=>"new"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73b4ab8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73b49f0 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73b4900 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73b4860 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb73b47e8 @is_optional=true, @key=:format>]>, :orders=>#<ActionController::Routing::Route:0xb7343e94 @parameter_shell={:controller=>"orders", :action=>"index"}, @requirements={:controller=>"orders", :action=>"index"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"orders", :action=>"index"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb734436c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73442cc @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb7344254 @is_optional=true, @key=:format>]>, :user=>#<ActionController::Routing::Route:0xb73a2994 @parameter_shell={:controller=>"users", :action=>"show"}, @requirements={:controller=>"users", :action=>"show"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"users", :action=>"show"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73a42a8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73a4140 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73a3dbc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb73a3c68 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb73a39d4 @is_optional=true, @key=:format>]>, :line_item=>#<ActionController::Routing::Route:0xb735ad38 @parameter_shell={:controller=>"line_items", :action=>"show"}, @requirements={:controller=>"line_items", :action=>"show"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"line_items", :action=>"show"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb735b4e0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb735b440 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb735b38c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb735b2ec @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb735b274 @is_optional=true, @key=:format>]>, :edit_user=>#<ActionController::Routing::Route:0xb73aa4a0 @parameter_shell={:controller=>"users", :action=>"edit"}, @requirements={:controller=>"users", :action=>"edit"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"users", :action=>"edit"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73aaea0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73aae00 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73aad4c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb73aacac @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb73aabf8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73aab58 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb73aaae0 @is_optional=true, @key=:format>]>, :new_product=>#<ActionController::Routing::Route:0xb730610c @parameter_shell={:controller=>"products", :action=>"new"}, @requirements={:controller=>"products", :action=>"new"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"products", :action=>"new"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7306788 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73066e8 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb7306634 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7306594 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb730651c @is_optional=true, @key=:format>]>, :products=>#<ActionController::Routing::Route:0xb73113cc @parameter_shell={:controller=>"products", :action=>"index"}, @requirements={:controller=>"products", :action=>"index"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"products", :action=>"index"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73118a4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7311804 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb731178c @is_optional=true, @key=:format>]>, :edit_product=>#<ActionController::Routing::Route:0xb72fcb70 @parameter_shell={:controller=>"products", :action=>"edit"}, @requirements={:controller=>"products", :action=>"edit"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"products", :action=>"edit"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72fd4bc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72fd41c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb72fd368 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72fd2c8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb72fd214 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72fd174 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb72fd0fc @is_optional=true, @key=:format>]>, :new_order=>#<ActionController::Routing::Route:0xb7334a84 @parameter_shell={:controller=>"orders", :action=>"new"}, @requirements={:controller=>"orders", :action=>"new"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"orders", :action=>"new"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73357a4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7335704 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb7335650 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7335498 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb7335420 @is_optional=true, @key=:format>]>, :product=>#<ActionController::Routing::Route:0xb72f6e50 @parameter_shell={:controller=>"products", :action=>"show"}, @requirements={:controller=>"products", :action=>"show"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"products", :action=>"show"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72f75f8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72f7558 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb72f74a4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72f7404 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72f738c @is_optional=true, @key=:format>]>, :new_line_item=>#<ActionController::Routing::Route:0xb737c654 @parameter_shell={:controller=>"line_items", :action=>"new"}, @requirements={:controller=>"line_items", :action=>"new"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"line_items", :action=>"new"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb737da54 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb737d964 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb737d89c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb737d7fc @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb737d784 @is_optional=true, @key=:format>]>, :users=>#<ActionController::Routing::Route:0xb73c1358 @parameter_shell={:controller=>"users", :action=>"index"}, @requirements={:controller=>"users", :action=>"index"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"users", :action=>"index"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73c1984 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73c17f4 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb73c1768 @is_optional=true, @key=:format>]>}, @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]>, @combined_regexp=nil, @routes=[#<ActionController::Routing::Route:0xb73c1358 @parameter_shell={:controller=>"users", :action=>"index"}, @requirements={:controller=>"users", :action=>"index"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"users", :action=>"index"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73c1984 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73c17f4 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb73c1768 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73b6b88 @parameter_shell={:controller=>"users", :action=>"create"}, @requirements={:controller=>"users", :action=>"create"}, @to_s="POST   /users(.:format)?                        {:controller=>\"users\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"users", :action=>"create"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73b7100 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73b7060 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb73b6fe8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73b43d8 @parameter_shell={:controller=>"users", :action=>"new"}, @requirements={:controller=>"users", :action=>"new"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"users", :action=>"new"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73b4ab8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73b49f0 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73b4900 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73b4860 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb73b47e8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73aa4a0 @parameter_shell={:controller=>"users", :action=>"edit"}, @requirements={:controller=>"users", :action=>"edit"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"users", :action=>"edit"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73aaea0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73aae00 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73aad4c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb73aacac @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb73aabf8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73aab58 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb73aaae0 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73a2994 @parameter_shell={:controller=>"users", :action=>"show"}, @requirements={:controller=>"users", :action=>"show"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"users", :action=>"show"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73a42a8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73a4140 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73a3dbc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb73a3c68 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb73a39d4 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7398c14 @parameter_shell={:controller=>"users", :action=>"update"}, @requirements={:controller=>"users", :action=>"update"}, @to_s="PUT    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"users", :action=>"update"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73994fc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb739945c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73993a8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7399308 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb7399290 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7394bf0 @parameter_shell={:controller=>"users", :action=>"destroy"}, @requirements={:controller=>"users", :action=>"destroy"}, @to_s="DELETE /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"users", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73955b4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73954c4 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb73953d4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb73952d0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb7395244 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb739035c @parameter_shell={:controller=>"line_items", :action=>"index"}, @requirements={:controller=>"line_items", :action=>"index"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"line_items", :action=>"index"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb739094c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7390794 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb739071c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7380920 @parameter_shell={:controller=>"line_items", :action=>"create"}, @requirements={:controller=>"line_items", :action=>"create"}, @to_s="POST   /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"line_items", :action=>"create"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7380df8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7380d58 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb7380ce0 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb737c654 @parameter_shell={:controller=>"line_items", :action=>"new"}, @requirements={:controller=>"line_items", :action=>"new"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"line_items", :action=>"new"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb737da54 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb737d964 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb737d89c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb737d7fc @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb737d784 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7366de0 @parameter_shell={:controller=>"line_items", :action=>"edit"}, @requirements={:controller=>"line_items", :action=>"edit"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"line_items", :action=>"edit"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7368168 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7367f4c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb7367e34 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7367ccc @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb7367b8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7367a88 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb73679ac @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb735ad38 @parameter_shell={:controller=>"line_items", :action=>"show"}, @requirements={:controller=>"line_items", :action=>"show"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"line_items", :action=>"show"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb735b4e0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb735b440 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb735b38c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb735b2ec @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb735b274 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb734fc30 @parameter_shell={:controller=>"line_items", :action=>"update"}, @requirements={:controller=>"line_items", :action=>"update"}, @to_s="PUT    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"line_items", :action=>"update"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7350cd4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7350ae0 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb73509f0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7350810 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb7350770 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7348020 @parameter_shell={:controller=>"line_items", :action=>"destroy"}, @requirements={:controller=>"line_items", :action=>"destroy"}, @to_s="DELETE /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"line_items", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7349290 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73491b4 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb7348f70 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7348e6c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb7348c8c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7343e94 @parameter_shell={:controller=>"orders", :action=>"index"}, @requirements={:controller=>"orders", :action=>"index"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"orders", :action=>"index"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb734436c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73442cc @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb7344254 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7337630 @parameter_shell={:controller=>"orders", :action=>"create"}, @requirements={:controller=>"orders", :action=>"create"}, @to_s="POST   /orders(.:format)?                       {:controller=>\"orders\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"orders", :action=>"create"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7337b08 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7337a68 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb73379f0 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7334a84 @parameter_shell={:controller=>"orders", :action=>"new"}, @requirements={:controller=>"orders", :action=>"new"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"orders", :action=>"new"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73357a4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7335704 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb7335650 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7335498 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb7335420 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73231e4 @parameter_shell={:controller=>"orders", :action=>"edit"}, @requirements={:controller=>"orders", :action=>"edit"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"orders", :action=>"edit"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7323b30 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7323a90 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb73239dc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb732393c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb7323888 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73237e8 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb7323770 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb731d4c4 @parameter_shell={:controller=>"orders", :action=>"show"}, @requirements={:controller=>"orders", :action=>"show"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"orders", :action=>"show"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb731dc6c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb731dbcc @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb731db18 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb731da78 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb731da00 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73178bc @parameter_shell={:controller=>"orders", :action=>"update"}, @requirements={:controller=>"orders", :action=>"update"}, @to_s="PUT    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"orders", :action=>"update"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7318064 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7317fc4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb7317f10 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7317e70 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb7317df8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73146e4 @parameter_shell={:controller=>"orders", :action=>"destroy"}, @requirements={:controller=>"orders", :action=>"destroy"}, @to_s="DELETE /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"orders", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7314e8c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7314dec @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb7314d38 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb7314c98 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb7314c20 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb73113cc @parameter_shell={:controller=>"products", :action=>"index"}, @requirements={:controller=>"products", :action=>"index"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"products", :action=>"index"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb73118a4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7311804 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb731178c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7308614 @parameter_shell={:controller=>"products", :action=>"create"}, @requirements={:controller=>"products", :action=>"create"}, @to_s="POST   /products(.:format)?                     {:controller=>\"products\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"products", :action=>"create"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7308aec @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7308a4c @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb73089d4 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb730610c @parameter_shell={:controller=>"products", :action=>"new"}, @requirements={:controller=>"products", :action=>"new"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"products", :action=>"new"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7306788 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb73066e8 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb7306634 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7306594 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb730651c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72fcb70 @parameter_shell={:controller=>"products", :action=>"edit"}, @requirements={:controller=>"products", :action=>"edit"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"products", :action=>"edit"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72fd4bc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72fd41c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb72fd368 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72fd2c8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb72fd214 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72fd174 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb72fd0fc @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72f6e50 @parameter_shell={:controller=>"products", :action=>"show"}, @requirements={:controller=>"products", :action=>"show"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"products", :action=>"show"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72f75f8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72f7558 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb72f74a4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72f7404 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72f738c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72f1248 @parameter_shell={:controller=>"products", :action=>"update"}, @requirements={:controller=>"products", :action=>"update"}, @to_s="PUT    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"products", :action=>"update"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72f19f0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72f1950 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb72f189c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72f17fc @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72f1784 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72ee070 @parameter_shell={:controller=>"products", :action=>"destroy"}, @requirements={:controller=>"products", :action=>"destroy"}, @to_s="DELETE /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"products", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72ee818 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72ee778 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb72ee6c4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72ee624 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72ee5ac @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72eb2e4 @parameter_shell={}, @requirements={}, @to_s="ANY    /:controller/:action/:id/                {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true, @controller_requirement=nil, @significant_keys=[:controller, :action, :id], @segments=[#<ActionController::Routing::DividerSegment:0xb72eb85c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb72eb7bc @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb72eb708 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72eb668 @is_optional=true, @default="index", @key=:action>, #<ActionController::Routing::DividerSegment:0xb72eb5b4 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72eb514 @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0xb72eb460 @is_optional=true, @raw=true, @value="/">]>, #<ActionController::Routing::Route:0xb72e6a28 @parameter_shell={}, @requirements={}, @to_s="ANY    /:controller/:action/:id(.:format)?      {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true, @controller_requirement=nil, @significant_keys=[:controller, :action, :id, :format], @segments=[#<ActionController::Routing::DividerSegment:0xb72e6f78 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb72e6ed8 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb72e6e24 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72e6d84 @is_optional=true, @default="index", @key=:action>, #<ActionController::Routing::DividerSegment:0xb72e6cd0 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72e6c30 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0xb72e6bb8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72d6a38 @parameter_shell={:controller=>"users", :action=>"index"}, @requirements={:controller=>"users", :action=>"index"}, @to_s="GET    /users(.:format)?                        {:controller=>\"users\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"users", :action=>"index"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72d6f10 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72d6e70 @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb72d6df8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72d47c4 @parameter_shell={:controller=>"users", :action=>"create"}, @requirements={:controller=>"users", :action=>"create"}, @to_s="POST   /users(.:format)?                        {:controller=>\"users\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"users", :action=>"create"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72d4c9c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72d4bfc @is_optional=false, @value="users">, #<ActionController::Routing::OptionalFormatSegment:0xb72d4b84 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72d22d0 @parameter_shell={:controller=>"users", :action=>"new"}, @requirements={:controller=>"users", :action=>"new"}, @to_s="GET    /users/new(.:format)?                    {:controller=>\"users\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"users", :action=>"new"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72d294c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72d28ac @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb72d27f8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72d2758 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb72d26e0 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72cf92c @parameter_shell={:controller=>"users", :action=>"edit"}, @requirements={:controller=>"users", :action=>"edit"}, @to_s="GET    /users/:id/edit(.:format)?               {:controller=>\"users\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"users", :action=>"edit"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72d0278 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72d01d8 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb72d0124 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72d0084 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb72cffd0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72cff30 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb72cfeb8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72cc664 @parameter_shell={:controller=>"users", :action=>"show"}, @requirements={:controller=>"users", :action=>"show"}, @to_s="GET    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"users", :action=>"show"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72cce0c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72ccd6c @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb72cccb8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72ccc18 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72ccba0 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72c94a0 @parameter_shell={:controller=>"users", :action=>"update"}, @requirements={:controller=>"users", :action=>"update"}, @to_s="PUT    /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"users", :action=>"update"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72c9c48 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72c9ba8 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb72c9af4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72c9a54 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72c99dc @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72c62c8 @parameter_shell={:controller=>"users", :action=>"destroy"}, @requirements={:controller=>"users", :action=>"destroy"}, @to_s="DELETE /users/:id(.:format)?                    {:controller=>\"users\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"users", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="users", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72c6a70 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72c69d0 @is_optional=false, @value="users">, #<ActionController::Routing::DividerSegment:0xb72c691c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72c687c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72c6804 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72c2fc4 @parameter_shell={:controller=>"line_items", :action=>"index"}, @requirements={:controller=>"line_items", :action=>"index"}, @to_s="GET    /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"line_items", :action=>"index"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72c349c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72c33fc @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb72c3384 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72c0d50 @parameter_shell={:controller=>"line_items", :action=>"create"}, @requirements={:controller=>"line_items", :action=>"create"}, @to_s="POST   /line_items(.:format)?                   {:controller=>\"line_items\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"line_items", :action=>"create"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72c1228 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72c1188 @is_optional=false, @value="line_items">, #<ActionController::Routing::OptionalFormatSegment:0xb72c1110 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72be85c @parameter_shell={:controller=>"line_items", :action=>"new"}, @requirements={:controller=>"line_items", :action=>"new"}, @to_s="GET    /line_items/new(.:format)?               {:controller=>\"line_items\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"line_items", :action=>"new"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72beed8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72bee38 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb72bed84 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72bece4 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb72bec6c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72bbeb8 @parameter_shell={:controller=>"line_items", :action=>"edit"}, @requirements={:controller=>"line_items", :action=>"edit"}, @to_s="GET    /line_items/:id/edit(.:format)?          {:controller=>\"line_items\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"line_items", :action=>"edit"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72bc804 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72bc764 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb72bc6b0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72bc610 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb72bc55c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72bc4bc @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb72bc444 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72b8bf0 @parameter_shell={:controller=>"line_items", :action=>"show"}, @requirements={:controller=>"line_items", :action=>"show"}, @to_s="GET    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"line_items", :action=>"show"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72b9398 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72b92f8 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb72b9244 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72b91a4 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72b912c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72b5a2c @parameter_shell={:controller=>"line_items", :action=>"update"}, @requirements={:controller=>"line_items", :action=>"update"}, @to_s="PUT    /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"line_items", :action=>"update"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72b61d4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72b6134 @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb72b6080 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72b5fe0 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72b5f68 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72b2854 @parameter_shell={:controller=>"line_items", :action=>"destroy"}, @requirements={:controller=>"line_items", :action=>"destroy"}, @to_s="DELETE /line_items/:id(.:format)?               {:controller=>\"line_items\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"line_items", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="line_items", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72b2ffc @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72b2f5c @is_optional=false, @value="line_items">, #<ActionController::Routing::DividerSegment:0xb72b2ea8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72b2e08 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72b2d90 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72af550 @parameter_shell={:controller=>"orders", :action=>"index"}, @requirements={:controller=>"orders", :action=>"index"}, @to_s="GET    /orders(.:format)?                       {:controller=>\"orders\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"orders", :action=>"index"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72afa28 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72af988 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb72af910 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72ad2dc @parameter_shell={:controller=>"orders", :action=>"create"}, @requirements={:controller=>"orders", :action=>"create"}, @to_s="POST   /orders(.:format)?                       {:controller=>\"orders\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"orders", :action=>"create"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72ad7b4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72ad714 @is_optional=false, @value="orders">, #<ActionController::Routing::OptionalFormatSegment:0xb72ad69c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72aade8 @parameter_shell={:controller=>"orders", :action=>"new"}, @requirements={:controller=>"orders", :action=>"new"}, @to_s="GET    /orders/new(.:format)?                   {:controller=>\"orders\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"orders", :action=>"new"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72ab464 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72ab3c4 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb72ab310 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72ab270 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb72ab1f8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72a8444 @parameter_shell={:controller=>"orders", :action=>"edit"}, @requirements={:controller=>"orders", :action=>"edit"}, @to_s="GET    /orders/:id/edit(.:format)?              {:controller=>\"orders\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"orders", :action=>"edit"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72a8d90 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72a8cf0 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb72a8c3c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72a8b9c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb72a8ae8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72a8a48 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb72a89d0 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72a517c @parameter_shell={:controller=>"orders", :action=>"show"}, @requirements={:controller=>"orders", :action=>"show"}, @to_s="GET    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"orders", :action=>"show"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72a5924 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72a5884 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb72a57d0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72a5730 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72a56b8 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb72a1fb8 @parameter_shell={:controller=>"orders", :action=>"update"}, @requirements={:controller=>"orders", :action=>"update"}, @to_s="PUT    /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"orders", :action=>"update"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb72a2760 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb72a26c0 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb72a260c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb72a256c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb72a24f4 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb729ede0 @parameter_shell={:controller=>"orders", :action=>"destroy"}, @requirements={:controller=>"orders", :action=>"destroy"}, @to_s="DELETE /orders/:id(.:format)?                   {:controller=>\"orders\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"orders", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="orders", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb729f588 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb729f4e8 @is_optional=false, @value="orders">, #<ActionController::Routing::DividerSegment:0xb729f434 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb729f394 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb729f31c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb7a2599c @parameter_shell={:controller=>"products", :action=>"index"}, @requirements={:controller=>"products", :action=>"index"}, @to_s="GET    /products(.:format)?                     {:controller=>\"products\", :action=>\"index\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="index", @defaults={:controller=>"products", :action=>"index"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7a26734 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7a26644 @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb7a2643c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79f81b8 @parameter_shell={:controller=>"products", :action=>"create"}, @requirements={:controller=>"products", :action=>"create"}, @to_s="POST   /products(.:format)?                     {:controller=>\"products\", :action=>\"create\"}", @optimise=true, @conditions={:method=>:post}, @action_requirement="create", @defaults={:controller=>"products", :action=>"create"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb7a020f0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb7a01f4c @is_optional=false, @value="products">, #<ActionController::Routing::OptionalFormatSegment:0xb7a01060 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79dcdf0 @parameter_shell={:controller=>"products", :action=>"new"}, @requirements={:controller=>"products", :action=>"new"}, @to_s="GET    /products/new(.:format)?                 {:controller=>\"products\", :action=>\"new\"}", @optimise=true, @conditions={:method=>:get}, @action_requirement="new", @defaults={:controller=>"products", :action=>"new"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb79dd4d0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79dd41c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb79dd368 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79dd2c8 @is_optional=false, @value="new">, #<ActionController::Routing::OptionalFormatSegment:0xb79dd23c @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79d9b28 @parameter_shell={:controller=>"products", :action=>"edit"}, @requirements={:controller=>"products", :action=>"edit"}, @to_s="GET    /products/:id/edit(.:format)?            {:controller=>\"products\", :action=>\"edit\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="edit", @defaults={:controller=>"products", :action=>"edit"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb79da49c @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79da3fc @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb79da348 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79da2a8 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::DividerSegment:0xb79da1f4 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79da154 @is_optional=false, @value="edit">, #<ActionController::Routing::OptionalFormatSegment:0xb79da0dc @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79d3d7c @parameter_shell={:controller=>"products", :action=>"show"}, @requirements={:controller=>"products", :action=>"show"}, @to_s="GET    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"show\"}", @optimise=false, @conditions={:method=>:get}, @action_requirement="show", @defaults={:controller=>"products", :action=>"show"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb79d5640 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79d558c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb79d54b0 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79d5410 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb79d5140 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79c98e0 @parameter_shell={:controller=>"products", :action=>"update"}, @requirements={:controller=>"products", :action=>"update"}, @to_s="PUT    /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"update\"}", @optimise=false, @conditions={:method=>:put}, @action_requirement="update", @defaults={:controller=>"products", :action=>"update"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb79cc874 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79cc7c0 @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb79cc590 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79cc48c @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb79cc3c4 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79b9364 @parameter_shell={:controller=>"products", :action=>"destroy"}, @requirements={:controller=>"products", :action=>"destroy"}, @to_s="DELETE /products/:id(.:format)?                 {:controller=>\"products\", :action=>\"destroy\"}", @optimise=false, @conditions={:method=>:delete}, @action_requirement="destroy", @defaults={:controller=>"products", :action=>"destroy"}, @matching_prepared=true, @controller_requirement="products", @significant_keys=[:id, :format, :controller, :action], @segments=[#<ActionController::Routing::DividerSegment:0xb79bbad8 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::StaticSegment:0xb79bb54c @is_optional=false, @value="products">, #<ActionController::Routing::DividerSegment:0xb79bb448 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79bb380 @is_optional=false, @key=:id, @regexp=/[^\/.?]+/>, #<ActionController::Routing::OptionalFormatSegment:0xb79bb290 @is_optional=true, @key=:format>]>, #<ActionController::Routing::Route:0xb79b1330 @parameter_shell={}, @requirements={}, @to_s="ANY    /:controller/:action/:id/                {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true, @controller_requirement=nil, @significant_keys=[:controller, :action, :id], @segments=[#<ActionController::Routing::DividerSegment:0xb79b1e84 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb79b1dbc @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb79b1d08 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79b1c68 @is_optional=true, @default="index", @key=:action>, #<ActionController::Routing::DividerSegment:0xb79b1ab0 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79b18d0 @is_optional=true, @key=:id>, #<ActionController::Routing::DividerSegment:0xb79b14ac @is_optional=true, @raw=true, @value="/">]>, #<ActionController::Routing::Route:0xb79a0170 @parameter_shell={}, @requirements={}, @to_s="ANY    /:controller/:action/:id(.:format)?      {}", @optimise=false, @conditions={}, @action_requirement=nil, @defaults={:action=>"index"}, @matching_prepared=true, @controller_requirement=nil, @significant_keys=[:controller, :action, :id, :format], @segments=[#<ActionController::Routing::DividerSegment:0xb79a0e90 @is_optional=false, @raw=true, @value="/">, #<ActionController::Routing::ControllerSegment:0xb79a0df0 @is_optional=false, @key=:controller>, #<ActionController::Routing::DividerSegment:0xb79a0d3c @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79a0b34 @is_optional=true, @default="index", @key=:action>, #<ActionController::Routing::DividerSegment:0xb79a0878 @is_optional=true, @raw=true, @value="/">, #<ActionController::Routing::DynamicSegment:0xb79a0404 @is_optional=true, @key=:id>, #<ActionController::Routing::OptionalFormatSegment:0xb79a038c @is_optional=true, @key=:format>]>], @builder=#<ActionController::Routing::RouteBuilder:0xb73c1d30 @separator_regexp=/[\/\.\?]/, @optional_separators=["/"], @interval_regexp=/(.*?)((?-mix:[\/\.\?])|$)/, @separators=["/", ".", "?"], @nonseparator_regexp=/\A([^\/\.\?]+)/>, @configuration_files=["/home/rubys/git/awdwr/work-188-235/depot/config/routes.rb"], @routes_last_modified=Mon Mar 01 00:12:12 -0500 2010>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0xb73d2824 @controller=nil, @named_routes_configured=true, @host="www.example.com", @request=nil, @status=nil, @accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @request_count=0, @response=nil, @cookies={}, @application=#<ActionController::Dispatcher:0xb73d26bc @output=#<IO:0xb7d441dc>>, @remote_addr="127.0.0.1", @https=false, @headers=nil, @result=nil, @status_message=nil, @path=nil>
 
>> puts rs.routes
GET    /users(.:format)?                        {:controller=>"users", :action=>"index"}
POST   /users(.:format)?                        {:controller=>"users", :action=>"create"}
GET    /users/new(.:format)?                    {:controller=>"users", :action=>"new"}
GET    /users/:id/edit(.:format)?               {:controller=>"users", :action=>"edit"}
GET    /users/:id(.:format)?                    {:controller=>"users", :action=>"show"}
PUT    /users/:id(.:format)?                    {:controller=>"users", :action=>"update"}
DELETE /users/:id(.:format)?                    {:controller=>"users", :action=>"destroy"}
GET    /line_items(.:format)?                   {:controller=>"line_items", :action=>"index"}
POST   /line_items(.:format)?                   {:controller=>"line_items", :action=>"create"}
GET    /line_items/new(.:format)?               {:controller=>"line_items", :action=>"new"}
GET    /line_items/:id/edit(.:format)?          {:controller=>"line_items", :action=>"edit"}
GET    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"show"}
PUT    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"update"}
DELETE /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"destroy"}
GET    /orders(.:format)?                       {:controller=>"orders", :action=>"index"}
POST   /orders(.:format)?                       {:controller=>"orders", :action=>"create"}
GET    /orders/new(.:format)?                   {:controller=>"orders", :action=>"new"}
GET    /orders/:id/edit(.:format)?              {:controller=>"orders", :action=>"edit"}
GET    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"show"}
PUT    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"update"}
DELETE /orders/:id(.:format)?                   {:controller=>"orders", :action=>"destroy"}
GET    /products(.:format)?                     {:controller=>"products", :action=>"index"}
POST   /products(.:format)?                     {:controller=>"products", :action=>"create"}
GET    /products/new(.:format)?                 {:controller=>"products", :action=>"new"}
GET    /products/:id/edit(.:format)?            {:controller=>"products", :action=>"edit"}
GET    /products/:id(.:format)?                 {:controller=>"products", :action=>"show"}
PUT    /products/:id(.:format)?                 {:controller=>"products", :action=>"update"}
DELETE /products/:id(.:format)?                 {:controller=>"products", :action=>"destroy"}
ANY    /:controller/:action/:id/                {}
ANY    /:controller/:action/:id(.:format)?      {}
GET    /users(.:format)?                        {:controller=>"users", :action=>"index"}
POST   /users(.:format)?                        {:controller=>"users", :action=>"create"}
GET    /users/new(.:format)?                    {:controller=>"users", :action=>"new"}
GET    /users/:id/edit(.:format)?               {:controller=>"users", :action=>"edit"}
GET    /users/:id(.:format)?                    {:controller=>"users", :action=>"show"}
PUT    /users/:id(.:format)?                    {:controller=>"users", :action=>"update"}
DELETE /users/:id(.:format)?                    {:controller=>"users", :action=>"destroy"}
GET    /line_items(.:format)?                   {:controller=>"line_items", :action=>"index"}
POST   /line_items(.:format)?                   {:controller=>"line_items", :action=>"create"}
GET    /line_items/new(.:format)?               {:controller=>"line_items", :action=>"new"}
GET    /line_items/:id/edit(.:format)?          {:controller=>"line_items", :action=>"edit"}
GET    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"show"}
PUT    /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"update"}
DELETE /line_items/:id(.:format)?               {:controller=>"line_items", :action=>"destroy"}
GET    /orders(.:format)?                       {:controller=>"orders", :action=>"index"}
POST   /orders(.:format)?                       {:controller=>"orders", :action=>"create"}
GET    /orders/new(.:format)?                   {:controller=>"orders", :action=>"new"}
GET    /orders/:id/edit(.:format)?              {:controller=>"orders", :action=>"edit"}
GET    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"show"}
PUT    /orders/:id(.:format)?                   {:controller=>"orders", :action=>"update"}
DELETE /orders/:id(.:format)?                   {:controller=>"orders", :action=>"destroy"}
GET    /products(.:format)?                     {:controller=>"products", :action=>"index"}
POST   /products(.:format)?                     {:controller=>"products", :action=>"create"}
GET    /products/new(.:format)?                 {:controller=>"products", :action=>"new"}
GET    /products/:id/edit(.:format)?            {:controller=>"products", :action=>"edit"}
GET    /products/:id(.:format)?                 {:controller=>"products", :action=>"show"}
PUT    /products/:id(.:format)?                 {:controller=>"products", :action=>"update"}
DELETE /products/:id(.:format)?                 {:controller=>"products", :action=>"destroy"}
ANY    /:controller/:action/:id/                {}
ANY    /:controller/:action/:id(.:format)?      {}
=> nil
>> rs.recognize_path "/store"
=> {:controller=>"store", :action=>"index"}
>> rs.recognize_path "/store/add_to_cart/1"
=> {:id=>"1", :controller=>"store", :action=>"add_to_cart"}
>> rs.recognize_path "/store/add_to_cart/1.xml"
=> {:id=>"1", :controller=>"store", :action=>"add_to_cart", :format=>"xml"}
>> rs.generate :controller => :store
=> "/store"
>> rs.generate :controller => :store, :id => 123
=> "/store/index/123"
>> rs.recognize_path "/coupon/show/1"
=> {:id=>"1", :controller=>"coupon", :action=>"show"}
>> load "config/routes.rb"
=> []
>> rs.recognize_path "/coupon/show/1"
=> {:id=>"1", :controller=>"coupon", :action=>"show"}
>> 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:0xb79a682c @configuration_files=[], @named_routes=#<ActionController::Routing::RouteSet::NamedRouteCollection:0xb799aa68 @helpers=[], @module=#<Module:0xb799aa04>, @routes={}>, @routes=[]>
>> app = ActionController::Integration::Session.new
=> #<ActionController::Integration::Session:0xb7775094 @status=nil, @headers=nil, @https=false, @controller=nil, @response=nil, @application=#<ActionController::Dispatcher:0xb776bd8c @app=#<Rack::Lock:0xb7761148 @app=#<ActionController::Failsafe:0xb7761224 @app=#<ActionController::ParamsParser:0xb7761300 @app=#<Rack::MethodOverride:0xb77613dc @app=#<Rack::Head:0xb77614b8 @app=#<ActionController::StringCoercion:0xb7761738 @app=#<Proc:0xb777213c@/home/rubys/git/awdwr/work-188-235/view/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130>>>>>>, @lock=#<Mutex:0xb7761094>>, @output=#<IO:0xb7d4a1cc>>, @cookies={}, @accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", @status_message=nil, @host="www.example.com", @request=nil, @named_routes_configured=true, @remote_addr="127.0.0.1", @result=nil, @request_count=0, @path=nil>
 
?> ActionController::Routing::Routes.draw do |map| 
 
?>   # Straight 'http://my.app/blog/' displays the index 
?>   map.connect "blog/", 
?>               :controller => "blog", 
?>               :action => "index" 
 
?>   # Return articles for a year, year/month, or year/month/day 
?>   map.connect "blog/:year/:month/:day", 
?>               :controller => "blog", 
?>               :action => "show_date", 
?>               :requirements => { :year => /(19|20)\d\d/,
?>                                  :month => /[01]?\d/, 
?>                                  :day => /[0-3]?\d/}, 
?>               :day => nil, 
?>               :month => nil 
 
>>   # Show an article identified by an id 
?>   map.connect "blog/show/:id", 
?>               :controller => "blog", 
?>               :action => "show", 
?>               :id => /\d+/ 
 
>>   # Regular Rails routing for admin stuff 
?>   map.connect "blog/:controller/:action/:id" 
 
>>   # Catchall so we can gracefully handle badly formed requests 
?>   map.connect "*anything", 
?>               :controller => "blog", 
?>               :action => "unknown_request" 
>> end
=> [ActionController::Base, ActionView::Base]
 
>> rs.recognize_path "/blog"
=> {:action=>"index", :controller=>"blog"}
>> rs.recognize_path "/blog/show/123"
=> {:id=>"123", :action=>"show", :controller=>"blog"}
>> rs.recognize_path "/blog/2004"
=> {:action=>"show_date", :year=>"2004", :controller=>"blog"}
>> rs.recognize_path "/blog/2004/12"
=> {:month=>"12", :action=>"show_date", :year=>"2004", :controller=>"blog"}
>> rs.recognize_path "/blog/2004/12/25"
=> {:month=>"12", :action=>"show_date", :year=>"2004", :controller=>"blog", :day=>"25"}
>> rs.recognize_path "/blog/article/edit/123"
=> {:id=>"123", :action=>"edit", :controller=>"article"}
>> rs.recognize_path "/blog/article/show_stats"
=> {:action=>"show_stats", :controller=>"article"}
>> rs.recognize_path "/blog/wibble"
=> {:action=>"unknown_request", :controller=>"blog", :anything=>["blog", "wibble"]}
>> rs.recognize_path "/junk"
=> {:action=>"unknown_request", :controller=>"blog", :anything=>["junk"]}
 
>> last_request = rs.recognize_path "/blog/2006/07/28"
=> {:month=>"07", :action=>"show_date", :year=>"2006", :controller=>"blog", :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