在我的Contract
表單中,我允許用戶從下拉框中選擇Unit
,或者從一組複選框中選擇多個單元。下拉字段的名稱爲unit_id
,多個複選框的名稱爲multi_unit_ids[]
。 (因爲這兩個選項都在頁面上,所以我不能使用相同的名稱)。Rails使用一個字段創建多個記錄
每個單位選擇一個合約。因此,如果只選擇1個單位,那麼只有一個Contract
與unit_id
一起創建。但是,在選擇多個單元時,所創建的每個Contract
的所有數據都是相同的,但每個數據都有自己的單元ID(從multi_unit_ids數組中提取)。
下面是代碼在我的我contracts_controller.rb
的create
方法:
# Multiple Units? Multiple Contracts
if params[:multi_unit_id]
unit_arr = params[:multi_unit_id]
else
unit_arr = [*params[:contract][:unit_id]]
end
# Loop through units
unit_arr.each do |unit_id|
# Assign the unit id to the params for easy creation
params[:contract][:unit_id] = unit_id
@contract = Contract.new(params[:contract])
# ... other code here
@contract.save
end
這一切似乎都那麼亂了!有什麼更好的方法來做到這一點?
感謝您的關注。這是我的困境的一部分,多個數據庫插入。我一定會執行這些交易。謝謝! – 2012-08-10 00:13:24