У нас есть необычное требование многоэтапной формы через запросы GET. Таким образом, вместо размещения форм, мы используем запросы GET для передачи новых параметров в запрос. Итак, основная идея заключается в том, что есть обработка и дата, переданная запросу. Трехступенчатая форма, если хотите.
- Показать доступные процедуры, выберите один
- Показать доступные даты (на заднем плане есть бизнес-логика)
- Выберите время
URL будет проходить через следующие состояния
- site.com / заказы / новый
- site.com / bookings / new / [id | name_of_treatment] (под этим я имею в виду или поле идентификатора, или название процедуры)
- site.com / заказы / новый / [идентификатор | name_of_treatment] / 2010-12-12 /
Итак, мой маршрут выглядит так:
map.connect 'bookings/new/:massage_type/:date', :controller => :bookings, :action => :new
тип массажа является синонимом идентификатора treatment_id.
Итак, мой form_tag выглядит так:
<% form_tag( {:action => "new"}, :method => "get" ) do %>
Проблема в том, что я хочу, чтобы она просто возвращала мне URL site.com/bookings/new/[id|name_of_treatment]/, но вместо этого он возвращает следующий URL:
http://localhost:3000/bookings/new?massage_type[treatment_id]=1&commit=actionnew
Не думаю, что кто-нибудь знает?