我有一个库存系统,其中一个用户有很多库存。我们有一个条形码列,每个用户需要按顺序排列。
例如:
库存表:
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
具有相同条形码的库存。即使在批量添加库存时,如何确保库存具有唯一的条形码?