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

时间:2010-11-02 22:15:50

标签: 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

例如,这是典型的网址: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”。我想使用命名路由new_order_url作为这样的URL。

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

1 个答案:

答案 0 :(得分:29)

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

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

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