ユーザーが多くの在庫を持つ在庫システムがあります。ユーザーごとに連続する必要があるバーコード列があります。
例えば:
インベントリ テーブル:
id | user_id | barcode
 1 |       1 |       1
 2 |       1 |       2
 3 |       2 |       1
 4 |       2 |       2
 5 |       1 |       3
私が持っている在庫モデルでは
before_validation :assign_barcode, on: :create
def assign_barcode
  self.barcode = (user.inventories.order(barcode: :desc).first.try(:barcode) || 0) + 1
end
通常は機能しますが、データベースをシードするときに問題が発生しました。
(1..5).each do
  user.inventories.build(...)
end
user.save
user同じバーコードを持つ在庫がたくさんあることになります。在庫を一括追加する場合でも、在庫に固有のバーコードがあることを確認するにはどうすればよいですか?