Enz*_*nzo 6 json ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)
它生成的数据如下所示:
[
{
"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": []
}
}
]
Run Code Online (Sandbox Code Playgroud)
你可以忽略event哈希,奇怪的东西发生在2 users数组的底部.
正如您所看到的,即使我将param 设置为,子rsvp_users数组也会显示名称.但是,对于数组(现在是空的),我不需要做任何事情,它的名字是自动的.这里发生了什么?这是rabl的一个错误吗?还是我缺少的东西?usersroot"rsvp_users"checkedin_userscheckedin_users
我遇到了同样的错误,问题似乎是将object_root设置为false.在Bigxiang的评论之后,我进行了一些实验,发现这很有效:
child( {:rsvp => :rsvp}, {:object_root => false} ) do
extends "users/index"
end
Run Code Online (Sandbox Code Playgroud)
请注意圆括号"()"和大括号"{}".
| 归档时间: |
|
| 查看次数: |
1061 次 |
| 最近记录: |