У меня в приложении на Rails несколько таблиц с ограничениями внешних ключей. Например, каждый заказ принадлежит клиенту. В таблице orders есть столбец costumer_id .
Когда я удаляю клиента с размещенным заказом из-за ограничений базы данных, MySQL возвращает ошибку:
Mysql :: Ошибка: невозможно удалить или обновить
родительская строка: ограничение внешнего ключа
не удается (orders
, ОГРАНИЧЕНИЕ
orders_ibfk_2
иностранный ключ
(customer_id
) ССЫЛКИ customers
(id
))
И на экране появляется ужасная ошибка со всеми трассировками стека и тому подобным
ActiveRecord :: StatementInvalid в DevicesController # уничтожить ...
Я хотел бы знать, есть ли элегантный способ обработки этих ошибок ограничения, давая красивое выражение «вы можете удалить этот объект, потому что он связан с X»
Как я мог это сделать?