1

У меня есть модель, которая, когда вставлена ​​запись, должна вызвать веб-сервис.Rails 3: cancel insert on after_save

Если веб-служба терпит неудачу (тайм-аут или другие сбои), их также следует вернуть в базу данных сохранения.

Я использовал обратный вызов after_save и попытался поднять ActiveRecord :: Rollback при возникновении такого рода ошибок.

Хотя он возвращает false на object.save, он не откатывает транзакцию. Каков правильный способ сделать это?

Как я могу также убедиться, что запись не будет создана?

ответ

1

Попробуйте использовать before_save и возвращает ложь от него.

+0

это также приведет к обновлению. –

+0

Вы можете проверить наличие 'id' в модели. 'id' будет присутствовать только после вставки в базу данных. –

Смежные вопросы