2016-12-07 3 views
0

У меня есть три модели, User, Service и Booking. Пользователь может заказать услугу, и это делается с помощью формы под моделью Booking.Передача значений от одной модели к другой форме

У меня есть страница для каждой услуги, доступной для бронирования, со ссылкой, которая говорит «Забронировать», и перенаправляет на new_bookings_path, чтобы пользователь мог сделать заказ.

Я хочу, чтобы щелкнуть ссылку «Забронировать сейчас», чтобы иметь возможность передавать значения службы, которые хранятся в виде записей в базе данных (название, цена и т. Д.), В новую форму бронирования. Поэтому, когда пользователь заполняет форму бронирования, они могут видеть, какую услугу они фактически заказывают.

Это мой _form.htm.erb для бронирования:

<%= simple_form_for (@booking) do |f| %> 
    Booking Date: <%= f.datetime_select :date %> 
    <br> 
    Time start<%= f.time_select :timestart %> 
    <br> 
    Time end <%= f.time_select :timeend %> 
    <%= f.input :address, label: "Address" %> 
    <%= f.input :postcode, label: "Postcode" %> 
    <%= f.input :suburb, label: "Suburb" %> 
    <br> 
    <br> 

    <br><br> 
    <%= f.button :submit %> 
<% end %> 

То, что я хочу быть в состоянии сделать это место что-то вроде

<%= @service.title %> 

в нижней части заказа, хотя я не уверен, как получить доступ к названию услуги, которую пользователь нажал «Забронировать сейчас».

Возможно ли получить значения услуги и каким-то образом получить к ним доступ при заказе контроллера/_form при нажатии на ссылку «Забронировать сейчас»?

Это "Забронировать" Ссылка: идентификатор службы

<%= link_to "Book Now", new_booking_path %> 

ответ

2

Pass в new_booking_path:

<%= link_to "Book Now", new_booking_path(service_id: @service.id) %> 

в вашем new действия в BookingsController, получить услугу:

def new 
@service = Service.find_by_id(params[:service_id]) 
#your code goes here 
end 

Тогда вы можете сделать <%= @service.title %> в вашей форме vi ew.

+1

Отлично, я приму это скоро, когда смогу! –

Смежные вопросы