0

だから私はこのコードを持っています:

 render :json => { :objects => @object.object_children }

これは機能します。しかし、私が欲しいのは特定の属性だけです。私はこれを見ました:レール3のフィルターjsonレンダリングとそれはこれです:

respond_to do |format|
format.json { render json: @objects.object_children, :only => [:id, :name] }
end

動作しますが、次のように、ラベルなしでデータを返します。

id":null,"name":"foo"

「:objects=>」ラベルが必要です。ありがとう

4

2 に答える 2

2

高度なjsonシリアル化については、アクティブモデルシリアライザーを確認してください

于 2013-03-08T07:55:51.963 に答える
1

元のソリューションと見つけたソリューションを組み合わせる必要があります。

render :json => { :objects => @object.object_children.as_json(:only => [:id, :name]) }

編集:説明

:objects =>元のソリューションでは、キーを手動で応答に追加しています。

render :json => @object.object_children
# vs
render :json => { :objects => @object.object_children }

したがって、キーを追加して返された属性:onlyフィルタリングするには、同じことを行う必要がありますが、フィルターを適用するオプションを指定して手動で as_json を呼び出します (コレクション全体を単に返すために Rails が行うことです) 。

respond_toブロックを使用するかどうかは、ニーズによって異なります。

于 2013-03-08T08:23:41.640 に答える