1

在生产环境配置中,我似乎找不到配置参数来告诉服务器,当 ActiveRecordClass.find()抛出异常时,它确实应该是异常。在开发模式下,它会抛出一个ActiveRecord::RecordNotFound异常,但在生产中它会拯救它并呈现404。我似乎记得这是你可以打开/关闭的东西?我宁愿不修补 404,这是我迄今为止看到的唯一解决方案。

.find(id) 方法应在您希望在无法找到文档中描述的 id 时引发异常时使用。如果你不想抛出异常,你应该使用 .find_by_id(id)。

4

1 回答 1

0

https://github.com/rails/rails/blob/4-0-stable/activerecord/lib/active_record/railtie.rb#L26

添加映射

'ActiveRecord::RecordNotFound' => :not_found

要求 action_dispatch 通过响应来拯救 'ActiveRecord::RecordNotFound' :not_found

正在做 - YourAppName::Application.config.action_dispatch.rescue_responses.delete('ActiveRecord::RecordNotFound')

在您的初始化程序中可能会得到您所期望的。

于 2013-10-13T13:42:27.433 回答