20

ユーザーが Rails 3 アプリの /update/ アクションに JSON を POST した場合、どのように応答するのが最適ですか?

次のような 200 コードを含む空の JSON 応答を送信したいだけです

head :no_content

また

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

( Rails コントローラーで HTTP 204 を返す方法の例)。

通常、私はこれを行ってきました:

render :json => {}

また

render :json => 'ok'

これに優先する、またはより多くのRails-yの方法はありますか?

4

1 に答える 1

29

私の 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

完璧に機能します。これが最終的に重要です。

于 2012-11-28T18:39:33.533 に答える