Возникновение ошибок при неудачной пользовательской проверке в Rails - PullRequest
0 голосов
/ 06 апреля 2019

Я написал специальную проверку для ошибки, когда пользователь пытается снять сумму, превышающую минимально допустимую сумму вывода.Проверка завершается неудачно, как и должно быть, когда снятие средств пользователем ниже минимально допустимой суммы, но код продолжает выполняться.Он не действует как обычные проверки на полях модели.

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.Надеюсь, я достаточно ясно

1 Ответ

0 голосов
/ 08 апреля 2019

Для вас может подойти следующая замена: errors.add (: base, I18n.t ('activerecord.errors.models.withdraw.amount.min_withdraw_amount', currency: currency.key, сумма: currency.min_withdraw_amount))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...