当我打开Sale(新)表格时,它具有条形码扫描仪的输入字段和一个按钮,用于向此销售中添加产品。据我了解,如果我连接条形码扫描仪并专注于输入字段,它将自动输入条形码的读数。
现在(希望)我有这些读数,一旦按下添加按钮,我真的不知道该怎么办。我了解我需要搜索数据库并找到具有相同条形码的物品。但是令我感到困惑的是,我的销售(新)尚未保存,因此我无法将此商品添加到SaleItem
模型中,因为我不知道当前销售的ID。
答案 0 :(得分:0)
在这种情况下,Rails具有Count = 1
和accepts_nested_attributes_for
:
fields_for
,但是您还必须编写客户端代码来修改您的表单(有一个瑰宝-# model
class Sale < ApplicationRecord
has_many :sale_items
accepts_nested_attributes_for :sale_items
end
,但有点过时了),以便它以nested_form
,sale[sale_items_attributes][1][barcode]=12345
,并修改控制器以允许通过强大的参数(sale[sale_items_attributes][2][barcode]=4321
)来实现。
技巧是,rails将与父模型一起保存嵌套模型,如果未通过任何模型的验证,也不会保存任何内容。