У меня простой вопрос.У меня есть таблица соединения, которая имеет индекс, который гарантирует, что (столбец 1, столбец 2) уникален.
Я добавляю в эту таблицу, используя gem mysql2, и пытаюсь поймать Mysql2 :: Error, если попыткаприводит к ошибке дублированного ключа.В то время как я получаю ошибку дублирующего ключа, мое тело спасения не выполняется.
begin
self.foo << bar
rescue Mysql2::Error
logger.debug("#{$!}")
end
Я получаю следующую ошибку при выполнении self.foo << bar
Mysql2 :: Ошибка: Дублирующая запись '35455-6628' для ключа 'index_foos_bars_on_foo_id_and_bar_id': INSERT INTO foos_bars
(foo_id
, bar_id
) ЗНАЧЕНИЯ (35455, 6628)
НО мое заявление о спасении не попало!Исключение не может быть успешно спасено от.Что я делаю неправильно?Если я удаляю Mysql2 :: Error и спасаю для всего, то это работает.Но это плохая практика - я просто хочу спасти от Mysql2 :: Ошибка, которая в случае дублирования записи.
Спасибо,