Ruby on Rails – залежності у валідаціях

validation

Валідація в Rails досить потужна та зручна фішка, але як виявилось (якщо я досить добре читав розділ документації про валідацію) немає штатної можливості вказати, що цю валідацію виконуємо тільки після вон тих (у разі їх успіху звісно)

Можливо постає питання для чого це все? В одному проекті аля "Склад", необхідно зробити приход (переміщення) товару з одного складу на інший, вибравши у формі товар та вказавши його кількість.

Перевіряти ми будемо наступні речі:

  • Товар вибраний
  • Кількість вказана, та більше нуля
  • Вказана кількість товару не перевищує фактичну кількість на складі, з якого ми виконуємо переміщення на текучий склад

 

Наша валідація

в такому разі ми отримаємо наступну ситуацію

validates_dependes_1

Як бачимо, у нас все на купу, а не хотілось би, для цього третю валідацію будемо виконути лише тоді, коли перші дві вернуть true