Rails 3コントローラーがあります:
class EmployeeController < ApplicationController
respond_to :json
def index
employees = Employee.all
respond_with employees
end
end
pry ブレークポイントを設定してto_json
onを呼び出すとemployees
、期待どおりの結果が得られます。JSON オブジェクトの配列のシリアル化であり、そのプロパティはEmployee
ActiveRecord モデルの属性です。
[1] pry(#<EmployeeController>)> employees.to_json
=> "[{\"created_at\":\"2013-06-21T19:22:14Z\",\"email\":\"ian@ ...
ただし、コントローラーから JSON の結果が返されるまでに、オブジェクト ラッパーの2 つの追加レイヤーが取得されます。1 つはリスト自体を囲み、もう 1 つは各オブジェクトを囲みます。
{"employee":[{"employee":{"created_at":"2013-06-21T19:22:14Z","email":"ian@ ...
私が使用しているライブラリは、これらの追加のラッパー レイヤーを想定していません。Railsのどの部分がそれらを追加する責任がありますか?これは私が制御できる動作ですか?
バージョン:
$ rails -v
Rails 3.2.13
アップデート
JSON gem のバージョン:
$ grep -i json Gemfile.lock
multi_json (~> 1.0)
multi_json (~> 1.0)
json (1.8.0)
multi_json (1.7.7)
json (~> 1.4)
multi_json (~> 1.0)
multi_json (~> 1.0, >= 1.0.2)