【发布时间】:2025-11-28 16:10:01
【问题描述】:
我在 Rails 应用程序中有几个带有外键约束的表。例如,每个订单都属于一个客户。 orders 表中有一个 costumer_id 列。
当我删除已下订单的客户时,由于数据库限制,MySQL 返回错误:
Mysql::Error: 无法删除或更新 父行:外键约束 失败(
orders,约束orders_ibfk_2外键 (customer_id) 参考资料customers(id))
屏幕上会弹出丑陋的错误,包括所有堆栈跟踪和那些东西 设备控制器中的 ActiveRecord::StatementInvalid#destroy ...
我想知道是否有一种优雅的方式来处理这些约束错误,例如“你可以删除这个对象,因为它与 X 相关联”
我该怎么做?
【问题讨论】:
标签: ruby-on-rails activerecord error-handling