Rails 4.2 ActionController:BadRequest自定义错误消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 4.2 ActionController:BadRequest自定义错误消息相关的知识,希望对你有一定的参考价值。

如果验证失败或400 - bad request缺少参数,我想从我的控制器返回。所以在我的控制器中如果有

if params["patch"].nil? then
  raise ActionController::BadRequest.new( "The Json body needs to be wrapped inside a "Patch" key")
end

我在我的应用程序控制器中捕获此错误:

rescue_from ActionController::BadRequest, with: :bad_request


def bad_request(exception)
  render status: 400, json: {:error => exception.message}.to_json
end

但似乎我在提高ActionController::BadRequest时无法添加自定义消息。因为当传递无效的身体时,响应只是{"error":"ActionController::BadRequest"}而不是我提供的哈希。

在控制台中,我得到了相同的行为。 raise ActiveRecord::RecordNotFound, "foo"确实提高了ActiveRecord::RecordNotFound: foo

raise ActionController::BadRequest, "baa"导致

ActionController::BadRequest: ActionController::BadRequest

如何向BadRequest例外添加自定义消息?

答案

试试这个:

raise ActionController::BadRequest.new(), "The Json body needs to be wrapped inside a "Patch" key"

以上是关于Rails 4.2 ActionController:BadRequest自定义错误消息的主要内容,如果未能解决你的问题,请参考以下文章

ruby 2.5 是不是已经用 Rails 4.2 测试过?

Rails 4.2 不创建非消化资产

Docker - Rails Development Auto Reload Broken (Rails 4.2) Mac NFS

rails 4.2 DataTables无法重新初始化DataTable

Rails 4.2 - url helper 引发“ArgumentError:错误数量的参数(3 for 1..2)”

Vagrant上的Rails 4.2服务器端口转发不起作用