Rails:如何使用params范围和使用params默认值的路由

我在routes.rb中有这样的行:

scope "/:subdomain/" do resource :order, :only => [:new, :create, :show, :update, :edit, :destroy] do get :cancel, :on => :member put :counter, :on => :member end end 

例如,这是典型的url: http : //mydomain.com/some_subdomain/order/new 。 此url映射到具有params [:subdomain] =“some_subdomain”的订单控制器的新操作。 我想使用命名路由new_order_url(:subdomain =>“some_subdomain”)。

但是我想将http://mydomain.com/order/new映射到订单控制器,操作new和params [:subdomain] =“default”。 我想为这样的url使用命名路由new_order_url。

这样做的最佳做法是什么?

答案是“use()和默认值”

 scope "/(:subdomain)", :defaults => {:subdomain => "default"} do ... end 

http://guides.rubyonrails.org/routing.html#dynamic-segments和http://guides.rubyonrails.org/routing.html#defining-defaults