当请求验证失败且响应类型为 JSON 时,继承资源似乎会自动将状态设置为 422。但是,如果响应类型是 html,则状态设置为 200。有没有办法告诉herited_resources 在验证失败时始终返回 422?
干杯,安迪
当请求验证失败且响应类型为 JSON 时,继承资源似乎会自动将状态设置为 422。但是,如果响应类型是 html,则状态设置为 200。有没有办法告诉herited_resources 在验证失败时始终返回 422?
干杯,安迪
这是一个可以放入初始化程序的猴子补丁(在 Rails 4.0.3 上测试):
class ActionController::Responder
def navigation_behavior_with_errors(error)
if !get? && has_errors? && default_action
render :action => default_action, status: :unprocessable_entity
return
end
navigation_behavior_without_errors(error)
end
alias_method_chain :navigation_behavior, :errors
end