1

Rails 4 では、User などのオブジェクトをレンダリングすると、次のようになります。

{ "id" : 4 , "name" : "John" }

一方、rails-api gem を使用すると、次のようになります。

{ "user" : { "id" : 4, "name" : "John" } }

どうすればRailsにオブジェクトキーを返すようにさせることができますか?

現在、コントローラーでこれを行っています:

render json: @user
4

1 に答える 1

0

この動作が見られる理由を説明するには...

Rails 4 では、「ActiveModel::Serializers::JSON.include_root_in_jsonデフォルト値をfalse」 ( source ) に変更しました。

一方、rails-apigem にはデフォルトでルート要素が含まれています。グローバルに、または呼び出しごとに簡単に無効にすることができます...ドキュメントで説明されています ここ.

あなたの「どちらがより正しいか」という質問について...

答えは主観的なものだと思います。アプリをゼロから開始する場合、使用するバックエンドが提供するデフォルトにクライアントを準拠させることになるでしょう。将来のアップグレードに対処するとき、それが最も抵抗の少ない方法のようです.

于 2013-08-25T19:11:58.100 に答える