Mor*_*gan 37 json ruby-on-rails jbuilder
当我
render json: {
error: "No such user; check the submitted email address",
status: 400
}
Run Code Online (Sandbox Code Playgroud)
然后做我的测试并检查
response.code
Run Code Online (Sandbox Code Playgroud)
我得到200而不是400
我肯定这个荒谬简单的答案,但我一直在寻找一个小时,似乎无法让这个工作.我可以解析Json,然后检查状态代码......但是有没有办法让response.code返回状态?我理解技术上它是成功的,我认为这就是为什么response.code返回200,但我之前使用的是Jbuilder,直接影响返回的代码.
Ric*_*dan 79
你已经在那里创建了json,它将被返回,并且json将是状态的标识--400.但是,这并没有告诉Rails在标题中发送400状态.
你可以这样做:
render json: {
error: "No such user; check the submitted email address",
status: 400
}, status: 400
Run Code Online (Sandbox Code Playgroud)
或类似的东西
payload = {
error: "No such user; check the submitted email address",
status: 400
}
render :json => payload, :status => :bad_request
Run Code Online (Sandbox Code Playgroud)
您可以使用符号:bad_request或状态号400.