1

这是发送与工作和非工作状态相关的 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
4

1 回答 1

-1

TL; DR:如果您正在使用一些 JS 框架,那么请查看该框架希望成功和失败响应的样子,如果您正在滚动自己的 - 然后做任何对您更有意义的事情。

长版:

有几种方法可以将 Rails 的响应返回到 Web 应用程序。Rails 默认返回状态码 2xx 表示成功,4xx 表示失败请求。一些 web 框架,如 Extjs,喜欢总是接收 200 代码的响应,并查看响应中的成功键以查看请求是否成功。如果您正在编写自己的使用 XHR 的 JS,那么您可以做任何您想做的事情:这取决于您如何构建您的 API。我发现使用 200 代码从服务器返回 json 响应并将成功键设置为 true 或 false 很有用,因此在我的回调 JS 中我可以编写如下内容:

if(request.data.success){
  successfulPost(response);
} else {
  failed(response);
}

我更喜欢这种方法的原因之一是,如果有异常,那么我实际上可以区分由于验证错误而没有保存的记录,而不是导致异常的代码中的错误。但这是个人喜好,有些人可能会争辩说错误就是错误,而导致错误的原因并不重要。

于 2013-09-19T21:03:43.887 回答