Проверка модели Rails по внешнему API - PullRequest
2 голосов
/ 08 сентября 2010

Рассмотрим следующий сценарий:

У вас есть модель аккаунта У вас есть внешняя служба, которая управляет подписками (например, CheddarGetter).

Вы не хотите создавать клиента в CG, если введенные данные не прошли ваши собственные проверки, а также вы не хотите сохранять клиента в своей собственной базе данных, если CG не принимает данные о клиенте и информацию об оплате. *

Однако вы хотите, чтобы любые ошибки валидации с обеих сторон были доступны пользователю.

Итак, как бы вы поступили по этому поводу? Проверка любой стороны проста, но заставить обе стороны работать вместе кажется трудным.

1 Ответ

1 голос
/ 08 сентября 2010

Я нашел способ достичь этого.

Локальные проверки выполняются в обычном режиме.Внешние проверки выполняются в обратном вызове before_create:

  def save_customer_on_cheddargetter
    begin
      external_api_stuff
    rescue => error
      errors.add :base, error.message
      return false
    end
    true
  end

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

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