我有租车系统。用户可以查看可用汽车的表格并单击“书籍”链接。它将它们引导到页面bookings/new
。我想要的是当前用户的用户ID和从可用汽车表中挑选的汽车的汽车ID,以自动输入到新的预订表格中。
目前,可用汽车表格会显示给用户:
#cars#index
<%if logged_in_as_staff?%>
<h2>Available Cars</h2>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<th>Car name</th>
<th>Manufacturer</th>
<th>Registration</th>
<th>Colour</th>
<th></th>
</tr>
<% @cars_available.each do |car| %>
<tr>
<td><%= car.car_name %></td>
<td><%= car.manufacturer %></td>
<td><%= car.registration %></td>
<td><%= car.colour %></td>
<td><%= link_to 'Book', new_booking_path %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'Menu', main_menu_staff_path %>
有没有办法通过link_to
传输数据,还是我必须在预订或汽车控制器中定义一个方法?
我的预订表格如下:
<%if logged_in_as_staff? %>
<%= form_for(@booking) do |f| %>
<% if @booking.errors.any? %>
<div id="error_explanation">
<ul>
<% @booking.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :booking_no %><br />
<%= f.text_field :booking_no%>
</div>
<div class="field">
<%= f.label :car_id %><br />
<%= f.number_field :car_id %>
</div>
<div class="field">
<%= f.label :user_id %><br />
<%= f.number_field :user_id %>
</div>
<div class="field">
<%= f.label :date %><br />
<%= f.date_select :date %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<% end %>
答案 0 :(得分:1)
您的链接应该是这样的:
<%= link_to 'Book', new_booking_path(car_id: car.id) %>
并以您的形式
替换
<div class="field">
<%= f.label :car_id %><br />
<%= f.number_field :car_id %>
</div>
与
<%= f.hidden_field, :car_id, value: params[:car_id] %>