Я написал специальную проверку для ошибки, когда пользователь пытается снять сумму, превышающую минимально допустимую сумму вывода.Проверка завершается неудачно, как и должно быть, когда снятие средств пользователем ниже минимально допустимой суммы, но код продолжает выполняться.Он не действует как обычные проверки на полях модели.
validate :minimum_withdrawal_amount, on: :create
validates :amount, numericality: {greater_than: 0}
def minimum_withdrawal_amount
if sum.nil? || sum < currency.min_withdraw_amount
errors.add :base, -> { I18n.t('activerecord.errors.models.withdraw.amount.min_withdraw_amount', currency: currency.key, amount: currency.min_withdraw_amount ) }
end
end
Он идет вперед и проверяет сумму, которая идет после него.Если эта проверка не пройдена, происходит ошибка.Мне нравится, что моя пользовательская проверка будет действовать как проверка на amount
.Надеюсь, я достаточно ясно