6

JSON データを生成するには、rabl コードに従う必要があります。

object @event
attributes :id, :EID, :name, :address, :description, :latitude, :longitude, :time, :created_at
node(:rsvp_count) { |event| event.rsvp_users.count }
node(:check_in_count) { |event| event.checkedin_users.count }
node(:FID) { |event| event.creater.FID if event.creater}

child :rsvp_users, :object_root => false do
    extends 'users/index'
end

child :checkedin_users, :object_root => false do
    extends 'users/index'
end

そして、それが生成するデータは次のようになります。

[
    {
        "event": {
            "id": 2,
            "EID": 123458,
            "name": "event no.2",
            "address": "189 elm st",
            "description": "awesome event",
            "latitude": 10,
            "longitude": 10,
            "time": "2013-10-20T18:00:00Z",
            "created_at": "2013-08-15T21:06:21Z",
            "rsvp_count": 3,
            "check_in_count": 0,
            "FID": 12345678,
            "users": [
                {
                    "id": 4,
                    "FID": 112233445,
                    "name": "name1",
                    "using_app": true
                },
                {
                    "id": 3,
                    "FID": 9999,
                    "name": "name2",
                    "using_app": false
                },
                {
                    "id": 2,
                    "FID": 123456789,
                    "name": "name3-robot",
                    "using_app": true
                }
            ],
            "checkedin_users": []
        }
    }
]

eventハッシュは無視できます。奇妙なことが 2users配列の下部で発生しています。

ご覧のとおり、 param をに設定しても、子rsvp_users配列は名前で表示されています。ただし、配列(現在は空)の場合、何もする必要はなく、その名前は自動的に. ここで何が起きてるの?それはrablのバグですか?それとも、私が見逃しているものですか?usersroot"rsvp_users"checkedin_userscheckedin_users

4

1 に答える 1