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

Johnc
quelle
Mögliches Duplikat von Wie überprüfen Sie die Eindeutigkeit eines ID-Paares in Ruby on Rails?
Ciro Santilli 1 冠状 病 六四 事件 法轮功

Antworten:

97

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

validates :employee_id, uniqueness: { scope: :area_id }
Naveed
quelle
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
JRL
quelle