web-dev-qa-db-ja.com

Rails:Jsonステータスのレンダリングの問題

私が

  render json: {
    error: "No such user; check the submitted email address",
    status: 400
  }

そして、私のテストを行い、チェックします

response.code

400ではなく200を取得します

この馬鹿げたシンプルな答えは確かだと思いますが、私は1時間探していましたが、これを機能させることができないようです。 Jsonを解析してからステータスコードを確認することはできますが、ステータスを返すためにresponse.codeを取得する方法はありませんか?技術的には成功したことを理解しており、そのためにresponse.codeが200を返していると思いますが、返されるコードに直接影響を与える前にJbuilderを使用していました。

37
Morgan

そこにjsonを作成し、それが返されます。そのjsonはステータスの識別-400です。しかし、それはRailsヘッダーで400ステータスを送信するように伝えていません。

できること:

render json: {
  error: "No such user; check the submitted email address",
  status: 400
}, status: 400

または何かのような

payload = {
  error: "No such user; check the submitted email address",
  status: 400
}
render :json => payload, :status => :bad_request

シンボル:bad_requestまたはステータス番号400のいずれかを使用できます。

79
Richard Jordan