在Rails 3中返回空JSON响应的首选方法是什么?

时间:2012-11-27 12:14:12

标签: ruby-on-rails json http rest

当用户将JSON发送到Rails 3应用程序中的/ update / action时,最佳响应方式是什么?

我想发送一个带有200代码的空JSON响应,类似于

head :no_content

render :nothing => true, :status => 204

(来自How to return HTTP 204 in a Rails controller的例子)。

通常我一直这样做:

render :json => {}

render :json => 'ok'

是否有首选或更多 Rails-y 方式?

1 个答案:

答案 0 :(得分:27)

My Rails 3应用使用此类代码进行更新。 html和xml的代码是由Rails自动生成的,所以我只是使用相同的格式添加到JSON渲染器中。

respond_to do |format|
  if @product.update_attributes(params[:product])
    format.html { redirect_to(@product, :notice => 'Product was successfully updated.') }
    format.xml  { head :ok }
    format.json { head :ok }
  else
    format.html { render :action => "edit" }
    format.xml  { render :xml => @product.errors, :status => :unprocessable_entity }
    format.json { render :json => @product.errors, :status => :unprocessable_entity }
  end
end

完美运作,这才是最重要的。