以下是发送与工作和非工作状态相关的json响应的代码。有没有人有其他资源的建议?这不起作用。谢谢。
if @content.destroy
format.json { redirect_to @collection, status: :destroyed, notice 'Content was removed from collection.' }, :status => 200
else
format.json { render json @content.errors, status: :unprocessable_entity }, :status => 400
end
答案 0 :(得分:-1)
TL; DR:如果您正在使用某些JS框架,那么请查看该框架如何想要成功和失败响应,如果您正在自己动手 - 然后做一些对您更有意义的事情。
长版:
有几种方法可以将rails的响应返回到您的网络应用。默认情况下,Rails返回状态代码2xx表示成功,4xx表示失败请求。一些Web框架,如Extjs,比如receive response with 200 code always and look at success key in the response to see if the request was successfult。如果您正在编写自己的使用XHR的JS,那么您可以随心所欲:您可以自己设计API。我觉得从服务器返回带有200个代码的json响应并将成功键设置为true或false很有用所以在我的回调JS中我可以编写如下内容:
if(request.data.success){
successfulPost(response);
} else {
failed(response);
}
我更喜欢这种方法的原因之一是,如果存在异常,那么我实际上可以区分由于验证错误而未保存的记录,而不是导致异常的代码中的错误。但这是个人偏好,有些人可能认为错误是错误的,导致它的原因并不重要。