У меня есть два вложенных ресурса, так что у продукта может быть много заказов. На одной странице в другом контроллере я хочу создать новое бронирование, и так как это «общее» бронирование, я хочу, чтобы меню выбора отображалось в модальном окне, где пользователь может выбрать один из существующих продуктов и затем перейти к Страница бронирования.
Как я могу это сделать?
У меня нет проблем с настройкой модального режима, и страница "Новое бронирование" уже есть. Мне нужна форма, которая генерирует список существующих продуктов, выбирает идентификатор выбранного продукта и затем получает / products /: product_id / bookings / new.
Очистить;
У меня есть два ресурса, установленных в маршрутах:
resources :products do
resources :bookings
end
У продукта есть много бронирований, поэтому путь для создания новой брони будет /products/:product_id/bookings/new.
У меня есть другой контроллер с видом, где я хочу кнопку для создания нового бронирования. Проблема в том, что я не знаю, для какого продукта пользователь хочет создать бронирование, когда нажата кнопка «Новое бронирование». Чтобы решить, что мой план состоял в том, чтобы показать модальное окно, содержащее выбор со всеми продуктами, чтобы пользователь мог выбрать продукт, а затем был перенаправлен в / products /: product_id / bookings / new с: product_id в качестве выбранного продукта.
Прямо сейчас у меня есть решение, которое работает, но оно не очень хорошее, я создал форму с действием для / products /: product_id / bookings / new и с method = get. Затем я улавливаю отправку с помощью JavaScript, изменяю действие и затем снова отправляю:
$("#new_booking_form").submit(function() {
var product_id = $(this).find('select').val();
var form_action = $(this).attr("action");
var new_form_action = form_action.replace(/product_id/, product_id);
$(this).attr("action", new_form_action);
$(this).submit();
});
Это решение работает, но очень уродливо! Есть предложения?