在我的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