2012-11-27 18 views
17

ユーザがJSONをRails 3アプリケーションの/ update/actionにPOSTするとき、どのような応答をするのが最適ですか?Rails 3で空のJSONレスポンスを返すための好ましい方法は何ですか?

私はちょうど200コード、

head :no_content 

または

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

のようなもの(How to return HTTP 204 in a Rails controllerからの例)で空のJSONレスポンスを送信します。

render :json => {} 

または

render :json => 'ok' 

はこれにそこに好ま以上Railsの-Y方法です:通常

私はこれをやっていますか?

+0

204で何も返さないでください。 – Evert

+2

私はちょうど使用します:head:ok –

答えて

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 

最終的に重要なのは完全に機能します。

+0

head:no_contentとheadの違いは何ですか? – Donato

+1

@Donato a:no_content(204)レスポンスは、成功したが内容を返さなかったリクエストです:ok(200)は成功したリクエストですが、適切なデータも返します。 –

関連する問題