Rails способ построения и перенаправления на URL с параметрами записи формы - PullRequest
1 голос
/ 20 января 2011

Я бы хотел, чтобы это был лучший способ следуя по рельсам.

У меня есть «Форма бронирования» с 5 полями (Недвижимость, Количество детей, Количество взрослых и 2 даты - отъезд и прибытие) на основе этих поля, мне нужно создать URL и перенаправить пользователя на этот URL. Теперь у меня есть 2 вопроса.

1) Как я ловлю параметры POST в контроллере, потому что я сопоставление формы с действием, подобным этому:

<% form_tag(:action => "booking") do %> 

и перенаправить его на действие контроллера следующим образом: (Pages Controller, Действие бронирования)

match 'pages/booking' => 'pages#booking' 

2) Это способ Rails на самом деле выполнить такую ​​вещь? Я делал это раньше в PHP, но теперь мне нужно На самом деле вы делаете это в Rails, не могли бы вы Rails Gurus вдохновить меня?

Ответы [ 2 ]

3 голосов
/ 20 января 2011

Чтобы получить доступ к параметрам в контроллере, даже если они представлены в теле POST, используйте хэш params. Например: params[:form_field]

Чтобы перенаправить на другой URL-адрес с помощью контроллера, используйте redirect_to. Конечно, вы можете использовать значения в params для создания URL-адреса и передачи его в redirect_to.

0 голосов
/ 20 января 2011

Если вы используете ресурсоемкие маршруты, что является наилучшим способом решения таких задач, вы бы перенаправили вещи с помощью традиционного подхода:

resources :bookings

Затем вы отправили бы форму на bookings_path и все получилось бы, как это BookingsController#create.Всегда лучше иметь сильную корреляцию между моделью и контроллером, где это возможно.

Определение resources в routes.rb помогает вам, создавая все стандартные действия RESTful, из которых вы можете построить.Если вам действительно нужен собственный маршрут, вы всегда можете переименовать его, используя опцию :as, или направить его независимо.

Если вы собираетесь создавать свои собственные произвольные маршруты, такие как /pages/booking, вы собираетесьсоздать беспорядок, который должен будет поддерживать кто-то другой.Очень часто в будущем за вами кто-то другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...