Штрих-код ввода Rails - PullRequest
       7

Штрих-код ввода Rails

0 голосов
/ 04 октября 2018

Когда я открываю форму «Продажа» (новая), в ней есть поле ввода для сканера штрих-кода и кнопка «Добавить» для добавления товаров в эту продажу.Насколько я понимаю, если я подключу сканер штрих-кода и сфокусируюсь на поле ввода, он должен автоматически вводить показания со штрих-кода.

Теперь у меня есть эти показания (надеюсь) и однажды добавить нажата кнопка Я не знаю, что делать.Я понимаю, что мне нужно поискать в БД и найти предмет с тем же штрих-кодом.Но меня смущает то, что моя распродажа (новая) еще не сохранена, поэтому я не могу добавить этот элемент в модель SaleItem, поскольку не знаю идентификатор текущей продажи.

1 Ответ

0 голосов
/ 04 октября 2018

В Rails есть 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 и модифицирует контроллер, чтобы разрешить их через строгие параметры (params.require(:sale).permit(... , sale_items_attributes:[:id, :barcode])).

Trickв том, что рельсы будут сохранять вложенные модели вместе с родительской, также ничего не будет сохранено, если проверка не пройдена ни для одной из моделей.

...