Frage

Wie kann ich eine Validierung dafür schreiben, dass der Barcode für alle Benutzer eindeutig ist? is_deleted ist falsch und dieselbe Kette?

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

was ist hier falsch?

Danke.

aktualisiert.Es kann zwei Benutzer mit demselben Barcode und derselben Chain_ID geben, sofern einer von ihnen oder beide über denselben Barcode verfügen :is_deleted => true

War es hilfreich?

Lösung

generasacodicetagpre.

Ich kam mit einer Lösung. Danke und sorry, es ist spät hier und der Kopf funktioniert nicht wie erwartet :)

Andere Tipps

Rails-Validierung haben if Und unless Parameter, mit denen Sie Bedingungen hinzufügen können, Sie haben es verwendet, um das Vorhandensein von Barcodes ordnungsgemäß zu überprüfen, aber Sie können es erweitern is_deleted sowie.Was die Ketten-ID betrifft, so verstehe ich, dass Sie an einer Festlegung des Umfangs interessiert sind.

In Ihrem Fall wäre das der Fall

validates :barcode, uniqueness: { scope: [:chain_id] }, if: proc { |u| u.barcode.present? && w.is_deleted.false? }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top