6
JSONデータを生成するためにrablコードに従わなければなりません。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
ハッシュを無視することができます
[
{
"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": []
}
}
]
、奇妙なものが2 users
配列内の下部に起こっています。
root
パラメータを"rsvp_users"
に設定しても、子rsvp_users
の配列はusers
という名前で表示されます。しかし、checkedin_users
配列(これは現在空です)では何もする必要はなく、名前は自動的にcheckedin_users
です。ここで何が起きてるの?それはrablのバグですか?それとも、私が行方不明のものですか?
"子:rsvp_users =>:rsvp_users、:object_root => false"を試しましたか? – Bigxiang
はい、私はこれが実際に私にエラーを与えます。しかし、 ':rsvp_users =>:rsvp_users'だけを':object_root => false'なしで行うと、うまくいくでしょう。しかし、配列内の各オブジェクトに名前を付けることは望ましくありません。 – Enzo
この「子{:rsvp_users =>:rsvp_users}、{:object_root => false}」を試してみてください。 – Bigxiang