2012-02-23 14 views

Odpowiedz

8

można dodać walidację niestandardowe:

class Something 
    validate :fields_a_and_b_are_different 

    def fields_a_and_b_are_different 
    if self.a == self.b 
     errors.add(:a, 'must be different to b') 
     errors.add(:b, 'must be different to a') 
    end 
    end 

która będzie wywoływana za każdym razem, gdy obiekt zostanie potwierdzone (jawnie lub po zapisaniu z walidacji) i doda błąd do obu pól. Możesz chcieć błędu w obu polach, aby renderować je inaczej w formularzu.

przeciwnym razie można po prostu dodać bazową błąd:

errors.add(:base, 'a must be different to b') 
5

W modelu:

validate :text_fields_are_not_equal 

def text_fields_are_not_equal 
    self.errors.add(:base, 'Text_field1 and text_field2 cannot be equal.') if self.text_field1 == self.text_field2 
end 
Powiązane problemy