Обработка ошибок в транзакциях ActiveRecord?

Я должен создать строку и в таблице билетов и в пользователей... Я просто должен знать, как обработать в случае, если транзакция перестала работать.

@ticket.transaction do
    @ticket.save!
    @user.save!
end
    #if (transaction succeeded)
        #.....
    #else (transaction failed)
        #......
    #end

На стороне отмечают, что я был бы точно так же, как для благодарности всех, кто участвует при переполнении стека для помощи разработчику узнать больше, программируя... Я ценю время Вы, парни вынимают из Вашего дня для ответа на n00b вопросы как это:)

38
задан Kevin 21 December 2009 в 01:49
поделиться

2 ответа

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

begin
  @ticket.transaction do
    @ticket.save!
    @user.save!
  end
  #handle success here
rescue ActiveRecord::RecordInvalid => invalid
   #handle failure here
end
57
ответ дан 27 November 2019 в 03:45
поделиться

Я тоже новичок, но я считаю, что вы можете проверить @ ticket.errors и @ user.errors и подтвердить в соответствии с их ответами

, также метод save должен возвращать логическое значение, которое определяет, было ли сохранение успешным

0
ответ дан 27 November 2019 в 03:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: