下面的表單顯示了正確的HTML,因此用戶可以在表單中輸入多個乘客資訊,但當我除錯看到表單提交的內容時,它只有一個乘客的詳細資訊,而每個預訂可能有多達4個乘客。
<%= form_for @booking do |f| %>
<% params[:passengers].to_i.times do %>
<%= f.field_for @passenger do |addy_form|%>
<%= addy_form.text_field :name, placeholder: "name" %>
<%= addy_form.text_field :email, placeholder: "email" %>
<% end %>
<% end %>
<%= hidden_field_tag(:flight_id, params[:flight_id] ) %>
<%= hidden_field_tag(:scheduled_for, params[:scheduled_for] ) %>
<%= hidden_field_tag(:from_airport, params[:from_airport] ) %>
<%= hidden_field_tag(:to_airport, params[:to_airport] ) %>
<%= f.submit 'Confirm Booking' %>
<% end %>
預訂控制器
class BookingsController < ApplicationController
def new
@booking = Booking.new
@passenger = Passenger.new
end = Passenger.new
end end
編輯:在表單提交的下方添加了引數。在表格中,我添加了2個乘客的詳細資訊,1)John - [email protected] 2)Sarah - [email protected]
{"authenticity_token"/span>=> "egDf-wifNMx4PzXQdFNpv_3NXnRyWp007D8klnMu-D3Hc47vKUVmJc1ehs-8RcV8SPapPG-bVPSTqLeu9M-A-w"/span>, "預訂"=> {"乘客"=> {"name"=>"sarah", "email"=> "[email protected]"}}, "flight_id"=>"9", " scheduled_for"=>"2021-02-10 23: 15: 00 UTC", "from_airport"=>"1"/span>, "to_airport"=> "2", " commit"=> "確認預訂", "控制器"=>"預訂", "動作"=>"創建"}。
uj5u.com熱心網友回復:
這是因為你在用輸入的新值多次覆寫@Passenger的值。
你應該在控制器中初始化乘客。
class BookingsController < ApplicationController
def new
@booking = Booking.new
params[:passengers].to_i.timesdo
@booking.passengers.build
結束。
結束。
end end
并更新視圖,使之像主檔案,使用@booking.passengers
uj5u.com熱心網友回復:
在Magzy的回答的指導下,我也漏掉了將這個添加到我的預訂模型中:
accepts_nested_attributes_for :passengers
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/307026.html
標籤:
上一篇:如何從規范檔案中傳遞數值到控制器
