Неверное имя корня ребенка в rabl и не может установить имя корня ребенка

Я должен следовать Rabl-код для генерации некоторых данных JSON.

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 хэш, странные вещи происходят внизу в 2 users массив.

Итак, как вы можете видеть, ребенок rsvp_users массив отображается с именем users даже если я установлю root парам к "rsvp_users", Однако для checkedin_users массив (который сейчас пуст), мне ничего не нужно делать, и его имя автоматически checkedin_users, Что здесь происходит? Это ошибка в Рабле? Или мне чего-то не хватает?

1 ответ

Я столкнулся с той же самой ошибкой, проблема, кажется, устанавливает false для object_root. После комментария Bigxiang я немного поэкспериментировал и обнаружил, что это работает фантастически:

child( {:rsvp => :rsvp}, {:object_root => false} ) do
   extends "users/index"
end

Обратите внимание на круглые скобки "()" и фигурные скобки "{}".

Другие вопросы по тегам