簡単な質問があります。(col 1、col 2)が一意であることを保証するインデックスを持つ結合テーブルがあります。
mysql2 gemを使用してそのテーブルに追加し、試行の結果、キーの重複エラーが発生した場合にMysql2::Errorをキャッチしようとしています。キーの重複エラーが発生しているのに、レスキューボディが実行されていません。
begin
self.foo << bar
rescue Mysql2::Error
logger.debug("#{$!}")
end
実行時に次のエラーが発生しますself.foo << bar
Mysql2 :: Error:キー'index_foos_bars_on_foo_id_and_bar_id'の重複エントリ'35455-6628':INSERT INTO foos_bars
(foo_id
、bar_id
)VALUES(35455、6628)
しかし、私のレスキューステートメントはヒットしていません!例外は正常に救出されません。私は何が間違っているのですか?Mysql2 :: Errorを削除してすべてをレスキューすると、機能します。しかし、それは悪い習慣です-重複したエントリが発生した場合にMysql2::Errorから救出したいだけです。
ありがとう、