Rails: проблемы с Render Json
Когда я
render json: {
error: "No such user; check the submitted email address",
status: 400
}
а затем выполните мои тесты и проверьте
response.code
Я получаю 200, а не 400
Я уверен, что ответ на этот абсурд просто, но я искал час и не могу заставить его работать. Я мог просто разобрать Json, а затем проверить код состояния... но не существует способа получить response.code, чтобы вернуть статус? Я понимаю, что технически это было успешным, и я предполагаю, что почему response.code возвращает 200, но раньше я использовал Jbuilder, где я мог напрямую влиять на возвращаемый код.
Ответы
Ответ 1
Вы создали 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.