2008-09-19 10 views

Odpowiedz

6

Walidatory zwykle mają parametr array wskazujący najpierw pola do sprawdzenia poprawności, a na końcu (jeśli istnieje) wartość skrótu z opcjami. W przykładzie:

:my_custom_validation, parameter1: x, parameter2: y 

: my_custom_validation byłaby nazwa pola, a parameter1: x, parameter2: y byłyby hash:

{ parameter1: x, parameter2: y} 

Dlatego, można by zrobić coś takiego:

def my_custom_validation(*attr) 
    options = attr.pop if attr.last.is_a? Hash 
    # do something with options 
    errors.add_to_base("error message") if condition.exists? 

end 
2

Można po prostu zrobić coś takiego:

def validate 
    errors.add('That particular field', 'can not be the value you presented') if !self.field_to_check.blank? && self.field_to_check == 'I AM COOL' 
end 

Nie trzeba zadzwonić odwoływać, bo uważają, że metoda validate jest przetwarzany (jeżeli istnieje) po każdej validates_uniqueness_of -Jak walidacji.

Dodano: Więcej informacji w dokumentach Rails API here.

Powiązane problemy