2011-09-23 48 views
1

您可以帮我吗?我被困!如何将自定义参数添加到路由中的默认操作

我为模型“Customer”实现了单个表继承。 “人”和“公司”是“客户”。所以我加了两条新航线转发所有请求到CustomersController

resources :customers        # added by generator 
resources :people, :controller => 'customers' <== NEW 
resources :companies, :controller => 'customers' <== NEW 

我想要做的就是

  1. 参数“type”添加到资源的作用“new”:customers
  2. 在两个其他资源中添加默认值“Person”和“Company”到“type”参数(如果参数被继承!?)

我的目标是能够调用

new_customer_path(:type => 'Person') 

new_person_path 

我以前试过以下,但它的工作

resources :people, :controller => 'customers' do 
    get 'new', :on => :member, :type => 'Person' 
end 

能否停止其它动作(如显示)那里有人告诉我我的错误?

+0

你要约束或简单的参数? – apneadiving

+0

我认为一个简单的参数应该做。任何建议的约束? – Hiasinho

回答

2

尝试添加参数资源参数

resources :people, :controller => 'customers', :type => "Person" 
resources :companies, :controller => 'customers', :type => "Company" 
+0

是的!这样做的工作!非常感谢Wizard先生! – Hiasinho

0

至于new_person_path你可以这样做:

map.new_person "new_person", :controller => "customers", :action => "new", :type => "person" 

请记住,有:

new_customer_path(:type => "person") 

将通过“?类型=人”的网址,以便您的访问者将能够改变它。

+0

他要求导轨3.1,而您的答案与导轨2有关。 –

+0

无论如何,谢谢!你如何将这个建议翻译成Rails 3.1? – Hiasinho

相关问题