czy czasem, “Proc.new{|c| c.is_ranking == 1}” nie będzie sprawdzać tego co mamy w bazie a ja bym chciał żeby sprawdzał co leci z formularza i jak w formularzy w select wybieramy opcję gdzie is_ranking==1 to validuje dwa dodatkowe pola.
[quote=piotrstanek]validates_presence_of :awards, :on => :update, if: Proc.new{|c| c.is_ranking == 1}
nie działa (w ogóle nie validuje)
czy czasem, “Proc.new{|c| c.is_ranking == 1}” nie będzie sprawdzać tego co mamy w bazie a ja bym chciał żeby sprawdzał co leci z formularza i jak w formularzy w select wybieramy opcję gdzie is_ranking==1 to validuje dwa dodatkowe pola.[/quote]
ten kod jest poprawny i działa tak jak powinien, tj. wykonuje walidację. Musisz mieć błąd w innym miejscu, jeżeli uważasz że się nie wykonuje to ustaw warunek na “true”, wtedy zawsze musi się wykonać.
Jak dalej się nie wykonuje to w warunku wyrzuć wyjątek. Jak wyjątek wyskakuje to dobrze oznacza że i walidacja się wykonuje. Jak wyjątku nie ma to masz problem w callbacku (update?).