我正在通过 ajax 提交数据以插入数据库。
由于视图和表单的复杂性,我发送了一些冗余信息(两种形式合二为一)。
例如我发送的数据是
partner_id:940
partner_ref: 1
product_1_id:50
product_1_quantity:1
然后在我的控制器中,我提交除partner_id
and之外的所有内容partner_ref
,为此我正在计算POST
数组的大小,减去 2 以说明我不想存储的 2 个参数,然后将其除以 2 以获得实际数量产品被存储,因此结果应该是 1,但表中存储了 2 个条目。
# get number of parameters passed and subtract 2 for partner_id and partner_ref
# divide count by two to get actual number of line items
line_items = ((params.size - 2) / 2)
count = 1
for i in count..line_items
item_id = params["product_#{count}_id"]
quantity = params["product_#{count}_quantity"]
# had to add this conditional statement to prevent NULL entries in the database
if !item_id.nil? and !quantity.nil?
line_item = QuoteItem.create(:price_list_item_id => item_id, :quantity => quantity)
end
count = count + 1
end
render :text => line_items # => 2 when it should be 1
这一定是愚蠢的,但看不出有什么不对。