如何为所有用户编写条形码的验证是唯一的,因为生成的所有用户都是假的和相同的链?

validates :barcode, uniqueness: { conditions: -> { |record| where(is_deleted: false, chain_id: record.chain_id) } }, if: proc { |u| u.barcode.present? }
.

这里有什么问题?

谢谢。

upd。如果其中一个或两者都有相同的链条,则可以有两个具有相同条形码的用户,如果其中一个或两者都有is_deleted

有帮助吗?

解决方案

validates :barcode, uniqueness: { scope: :chain_id, conditions: ->{ where(is_deleted: false) } }, if: proc { |u| u.barcode.present? && u.active? }
.

我想出了一个解决方案。 谢谢,对不起,它迟到了,头部没有按预期工作:)

其他提示

Rails验证具有生成的icodeTagcode和if参数,允许您添加条件,您使用它正确检查条形码状态,但也可以将其扩展为unless。 至于链ID,我明白你对范围感兴趣。

在您的情况下是

validates :barcode, uniqueness: { scope: [:chain_id] }, if: proc { |u| u.barcode.present? && w.is_deleted.false? }
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top