[英]Barcode input Rails
当我打开销售(新)表格时,它具有条形码扫描仪的输入字段和添加按钮以向此销售添加产品。 据我了解,如果我连接条形码扫描仪并专注于输入字段,它将自动输入条形码的读数。
现在我有了这些读数(希望如此),一旦按下添加按钮,我真的不知道该怎么办。 我了解我需要搜索数据库并找到具有相同条形码的物品。 但是令我感到困惑的是,我的Sale(新商品)尚未保存,因此我无法将此商品添加到SaleItem
模型中,因为我不知道当前商品的ID。
Rails在这种情况下具有accepts_nested_attributes_for
和fields_for
:
# model
class Sale < ApplicationRecord
has_many :sale_items
accepts_nested_attributes_for :sale_items
end
但是您还必须编写客户端代码来修改您的表单(有一个gem- nested_form
,但是有点过时了),以便它以sale[sale_items_attributes][1][barcode]=12345
形式发布数据sale[sale_items_attributes][1][barcode]=12345
, sale[sale_items_attributes][2][barcode]=4321
,并修改控制器以允许通过强参数( params.require(:sale).permit(... , sale_items_attributes:[:id, :barcode])
)。
诀窍是,rails将与父模型一起保存嵌套模型,如果未通过任何模型的验证,也将不保存任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.