2016-08-30 2 views
2

妥当性検査が失敗したか、パラメータが欠けている場合はコントローラから戻したいですか?400 - bad requestです。だから私のコントローラであれば Rails 4.2 ActionController:BadRequestカスタムエラーメッセージ

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が発生します。

ActionController::BadRequest: ActionController::BadRequest

しかしraise ActionController::BadRequest, "baa"結果がどのように私はBadRequest例外にカスタムメッセージを追加することができますか?

答えて

2

これを試してみてください:

raise ActionController::BadRequest.new(), "The Json body needs to be wrapped inside a \"Patch\" key" 
関連する問題