Rails как игнорировать RecordNotUnique при обработке массовой вставки?

#ruby-on-rails #ruby-on-rails-3 #exception

#ruby-on-rails #ruby-on-rails-3 #исключение

Вопрос:

Я обрабатываю некоторые XML-данные, где могут оказаться некоторые записи, которые уже были введены в БД. Я решил эту проблему с индексом в двух столбцах, но знаю, что это случается, когда не вводится никакого значения (даже уникальных) и просто возникает исключение RecordNotUnique. Как можно сообщить процессу, что он не должен просто вводить эту запись, а должен продолжить, введя следующие записи XML-файла?

Спасибо за любую помощь! Markus

Ответ №1:

Попробуйте обернуть свой код в:

 begin
...
rescue RecordNotUnique => exception
 next
end
  

кажется, у вас есть цикл для синтаксического анализа XML. Таким образом, он пропустит «плохую» запись и продолжит работу.

Комментарии:

1. К сожалению, это не работает… когда я отлаживаю это, исключение никогда не вызывается… Но консоль говорит мне, что эта RecordNotUnique действительно имеет место!

2. Мне просто пришлось перезапустить сервер, потому что я выполняю вычисления в отдельном файле, который хранится в каталоге lib…