Wie überprüfe ich zwei Felder auf Eindeutigkeit?


73

Ich muss die Eindeutigkeit von zwei Feldern in einem Objekt (einer Zeile) überprüfen, bevor ich sie hinzufüge. Employee_id und area_id sind die beiden Felder in meiner Tabelle emp_area. Es kann mehrere Datensätze mit derselben employee_id und mehrere Datensätze mit derselben area_id geben, aber keine zwei Datensätze können dieselbe employee_id und dieselbe area_id haben. Dies ähnelt zwei Feldern, aus denen ein Primärschlüssel oder ein eindeutiger Schlüssel besteht.

Wie kann ich das machen.

Vielen Dank


Antworten:


97

Was ist mit dieser Lösung ? Validieren Sie kombinierte Werte

validates :employee_id, uniqueness: { scope: :area_id }

3
Dies scheint vorzuziehen zu sein, validates_uniqueness_ofda Sie damit mehrere Validierungen auf demselben Formular festlegen können, z presence: true.
Joshua Pinter

Für die korrekte Hervorhebung der von mir erstellten Fehlermeldungen wird außerdem Folgendes überprüft: area_id, Eindeutigkeit: {scope: employee_id}
Mauro

69
validates_uniqueness_of :employee_id, :scope => :area_id
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.