Ruby on rails Rails:如何使用带有params的scope和带有params默认值的route

Ruby on rails Rails:如何使用带有params的scope和带有params默认值的route,ruby-on-rails,routes,default,Ruby On Rails,Routes,Default,我在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:。此url映射到具有参数[:子域]=“

我在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:。此url映射到具有参数[:子域]=“some_子域”的新订单控制器的操作。我想使用命名路由new\u order\u url(:subdomain=>“some\u subdomain”)

但我想映射到orders controller、action new和params[:subdomain]=“default”。我想为这样的url使用命名的route new_order_url

最佳做法是什么?

答案是“使用()和默认值”


还有一个建议,使用
resource:order,:except=>[:index]
而不是
:only
在动态参数周围放置
()
的目的是什么?它的文档在哪里?@ArslanAli它使参数成为可选的:
scope "/(:subdomain)", :defaults => {:subdomain => "default"} do
  ...
end