Как добавить настраиваемый параметр к действию по умолчанию в маршрутизации

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

Я реализовал наследование одной таблицы для модели «Клиент». «Лицо» и «Компания» являются «Клиентами». Поэтому я добавил два новых маршрута для пересылки всех запросов на CustomersController:

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

Я хочу сделать это

  1. добавить параметр "type" к действию "new" ресурса :customers
  2. добавить значение по умолчанию «Человек» и «Компания» к параметру «тип» в обоих других ресурсах (если параметр унаследован!?)

Моя цель - иметь возможность звонить

new_customer_path(:type => 'Person')

а также

new_person_path

Раньше я пробовал следующее, но это мешало другим действиям (например, показу) работать

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

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


person Hiasinho    schedule 23.09.2011    source источник
comment
вам нужно ограничение или простой параметр?   -  person apneadiving    schedule 23.09.2011
comment
Я думаю, что простой параметр должен делать. Любое предложение для ограничения?   -  person Hiasinho    schedule 23.09.2011


Ответы (2)


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

resources :people,    :controller => 'customers', :type => "Person"
resources :companies, :controller => 'customers', :type => "Company"
person Wizard of Ogz    schedule 23.09.2011
comment
ДА! Это сделало работу! Большое спасибо, мистер Волшебник! - person Hiasinho; 24.09.2011

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

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

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

new_customer_path(:type => "person")

Будет передавать «?type=person» в URL-адресе, чтобы ваши посетители могли его изменить.

person miligraf    schedule 23.09.2011
comment
Он попросил рельсы 3.1, а ваш ответ связан с рельсами 2. - person Benoit Garret; 24.09.2011
comment
В любом случае, спасибо! Как бы вы перевели это предложение на Rails 3.1? - person Hiasinho; 24.09.2011