Wykorzystanie validacji modeli do metod find

WItajcie

Czy mozna wykorzystac validacje z modeli (validates_…_of) do pol formularzy ale dla pytan typu Model.find?
Chodzi o to, ze chcialbym przed zapytaniem do bazy sprawdzic poprawnosc pol formularza i dopiero po ich poprawnej validacji zadac pytanie find.

Z tego co sprawdzialem i na co pozwala moja mala wiedza :S to validacja wykonuje sie tylko przy save i update. Czy da sie skorzystac z validacji a nie z notice’ow?

taki luźny pomysł:
może nadpiszesz sobie w method_missing w modelu tak, aby w przypadku gdy nazwa zaczyna się od find_by sprawdzać pola, a potem robić dopiero original_method_missing?

dzieki za odpowiedz, niestety moj poziom wiedzy w rubym jest na poziomie zerowki, maluje jakies szlaczki, ale zeby zaczac pisac poezje, to jeszcze wiele godzin przede mna, mozesz cos wiecej napisac? Konkretnie kiedy bede wiedzial, ze jest uzywana metoda find_by i jak to sie sie ma do original_method_missing?

def self.method_missing(*args, &block) method = args.first.id2name return false if method =~ /find/ && !metodatwojejwalidacji super end
wrzuć to do modelu z którego chcesz wyszukiwać.

Użyj metody .valid?

Nie rozumiem dlaczego chcesz to robić. O jakiego find’a chodzi i jak się to łączy z formularzem ?

Dzieki Esse za kod, pokombinuje z nim, choc w miedzyczasie znalazlem inne rozwiazania:


ale to tez mnie nie zadawala.
W sumie korzystam z live_validation, i o dziwo jak js jest wlaczone, to formularz serwuje odpowienie komunikaty (ale korzysta tylko z validates_of…) ale jak mam np

def validate
errors.add(:lockcode, " bledny format kodu") if self.lockcode == ‘xx’
end

to przy sprawdzaniu nie wykonuje sie metoda validate.
Poprawnosc pola chce sprawdzic, zanim wykonam finda, by miec pewnosc, ze pole jest wypelnione, pole ma odpowiedni format (i koniecznie chce skorzystac z metody validate a nie gotowych validates). Sprawdze jeszcze to valid?