ActiveRecord::DeleteRestrictionError 的正确 HTTP 响应代码是什么

What is the proper HTTP response code for ActiveRecord::DeleteRestrictionError

如果 DELETE 请求失败,因为要删除的资源仍然有关联的子记录并引发了 ActiveRecord::DeleteRestrictionError 异常,返回的正确 HTTP 响应代码是什么? 422?

我会说你可以使用 422 或更模糊的 500。

422 是合理的,因为服务器理解请求实体的内容类型并且请求实体的语法是正确的,但无法处理包含的指令。

500 是合理的,因为服务器确实遇到了阻止它完成请求的意外情况(相关的子记录是服务器端问题)。

Source