Как добавить пользовательский параметр к действию по умолчанию в маршрутизации - PullRequest
1 голос
/ 23 сентября 2011

Можете ли вы помочь мне? Я застрял!

Я реализовал одну таблицу наследования для модели «Клиент». «Лицо» и «Компания» являются «Заказчиками». Поэтому я добавил два новых маршрута для пересылки всех запросов на 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

Может ли кто-нибудь рассказать мне о моей ошибке?

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Попробуйте добавить параметр в аргументы ресурсов

resources :people,    :controller => 'customers', :type => "Person"
resources :companies, :controller => 'customers', :type => "Company"
0 голосов
/ 24 сентября 2011

Что касается new_person_path, вы можете сделать:

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

Имейте в виду, что:

new_customer_path(:type => "person")

передаст "? Type = person" в URL, так что ваши посетители будутв состоянии изменить это.

...