【问题标题】:Set field data using data from another table使用另一个表中的数据设置字段数据
【发布时间】:2012-12-09 16:19:05
【问题描述】:

我有一个汽车租赁系统。用户可以查看可用汽车表并单击“预订”链接。它将他们定向到页面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 %>

【问题讨论】:

    标签: ruby-on-rails methods html-table


    【解决方案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] %>
    

    【讨论】:

    • 感谢您的回复。我收到隐藏字段错误。出乎意料的 ':' 在值之后。我还通过 car_id 之后的链接获得它。是 ':' 的正确语法。我正在使用 rails 3.2.6 btw
    • 我使用了 :value => params[:car_id] 并且成功了,感谢您的帮助
    • 我很高兴它有帮助。我使用了新的哈希语法,它需要 ruby​​ 1.9 > 这就是问题所在。
    猜你喜欢
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2013-09-10
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多