1

当请求验证失败且响应类型为 JSON 时,继承资源似乎会自动将状态设置为 422。但是,如果响应类型是 html,则状态设置为 200。有没有办法告诉herited_resources 在验证失败时始终返回 422?

干杯,安迪

4

1 回答 1

0

这是一个可以放入初始化程序的猴子补丁(在 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
于 2014-02-26T16:55:04.597 回答