2012-02-23 10 views

risposta

8

È possibile aggiungere una convalida personalizzato:

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 

che verranno chiamati ogni volta che l'oggetto viene convalidato (esplicitamente o quando si salva con la convalida) e aggiungerà un errore in entrambi i campi. Potresti volere un errore su entrambi i campi per renderli in modo diverso nel modulo.

Altrimenti si può solo aggiungere un errore di base:

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

nel modello:

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 
Problemi correlati