2009-10-27 19 views
72

Muszę sprawdzić unikalność dwóch pól w obiekcie (wierszu), zanim je dodaję. Employee_id i area_id są dwoma polami w mojej tabeli emp_area. Może istnieć wiele rekordów z tym samym employee_id i wieloma rekordami z tym samym area_id, ale żadne dwa rekordy nie mogą mieć tego samego employee_id i tego samego area_id. Jest to trochę jak dwa pola tworzące klucz podstawowy lub klucz unikalny.Jak sprawdzić poprawność dwóch pól dla unikalności

Jak mogę to zrobić.

Dzięki

+0

to było to dziękuję! – johnc

+0

możliwy duplikat [W jaki sposób potwierdzasz unikatowość pary identyfikatorów w Ruby on Rails?] (Http://stackoverflow.com/questions/923796/how-do-you-validate-uniqueness-of-a-pair- of-ids-in-ruby-on-rails) –

Odpowiedz

69
validates_uniqueness_of :employee_id, :scope => :area_id 
96

co z tego rozwiązania Validate combined values

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

To wydaje się być preferowane w porównaniu z 'validates_uniqueness_of', ponieważ pozwala ustawić wiele walidacji w tej samej formie, np. 'obecność: true'. –

+0

Prawidłowe podświetlenie komunikatów o błędach, które utworzyłem, również sprawdza: area_id, unikalność: {scope: employee_id} – Mauro

Powiązane problemy