Walidacja w zależności od roli

Mam pytanko czy i jak rozwiązać problem walidacji wymaganych pól w modelu w zależności od roli zalogowanego usera?

coś na kształt

if current_user.role == 'admin' validate_presence_of :a, :b, :c, :d elsif current_user.role == 'mod' validate_presence_of :b,:d else validate_presence_of :a end
jedyne co mi się udało osiągnąć, co działa to rożna validacja dla zalogowanych i niezalogowanych poprzez UserSession.find.

[quote=gotar]Mam pytanko czy i jak rozwiązać problem walidacji wymaganych pól w modelu w zależności od roli zalogowanego usera?

coś na kształt

if current_user.role == 'admin' validate_presence_of :a, :b, :c, :d elsif current_user.role == 'mod' validate_presence_of :b,:d else validate_presence_of :a end
jedyne co mi się udało osiągnąć, co działa to rożna validacja dla zalogowanych i niezalogowanych poprzez UserSession.find.[/quote]
Popatrz na ten kod i przemyśl to jeszcze raz :slight_smile:

validate_presence_of i wszelkie inne metody, które wykonuje się w ciele klasy, wykonają się podczas tworzenia klasy. Zainteresuj się przełącznikami :if i :unless w validacjach. Jako argument można podać nazwę metody, która się wykona przed walidacją - od jej wyniku zależy czy walidacja się wykona, czy nie.

ech ;/ no za długo chyba już siedzę nad tym. Teraz widzę jakie to głupie, no ale dzięki bo pewnie bym to drążył jeszcze kilka h zamiast na świeżo na to spojrzeć ;]