na szynach 5.Rails - Walidacja: jeśli warunek jest spełniony
Mam Order
model z atrybutem description
. Chcę tylko sprawdzić jego obecność, jeśli spełniony jest jeden z dwóch warunków: jeśli bieżący krok jest równy pierwszemu krokowi LUB jeśli require_validation jest równy true.
mogę łatwo sprawdzić poprawność na podstawie jednego warunku jak ten:
validates :description, presence: true, if: :first_step?
def first_step?
current_step == steps.first
end
ale nie jestem pewien, jak go o dodanie kolejnego warunku i sprawdzenie, czy jeden lub drugi jest prawdziwe.
coś takiego:
validates :description, presence: true, if: :first_step? || :require_validation
Dzięki!
Czy to nie lambda? Blok będzie następujący: 'validates: description, presence: true, if: {first_step? || require_validation} ' –
Ach, masz rację. Powinienem był powiedzieć "Możesz podać lambdę". –
:) Blok działa również. Railsy po prostu konwertują je do proc lub lambda (zapomniałem co) przed użyciem. –