Tôi phải tuân theo mã rabl để tạo ra một số dữ liệu JSON.sai tên gốc con trong rabl và không thể đặt tên gốc con
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
Và dữ liệu mà nó tạo ra trông như thế này:
[
{
"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": []
}
}
]
Bạn có thể bỏ qua các event
băm, những thứ kỳ lạ đang xảy ra ở phía dưới trong mảng 2 users
.
Như bạn có thể thấy, mẫu con rsvp_users
hiển thị với tên users
ngay cả khi tôi đặt thông số root
thành "rsvp_users"
. Tuy nhiên, đối với mảng checkedin_users
(hiện đang trống), tôi không cần phải làm gì cả và tên của nó là tự động checkedin_users
. Chuyện gì đang xảy ra ở đây? Nó là một lỗi trong rabl? Hay là cái gì đó mà tôi đang thiếu?
Bạn đã thử "con: rsvp_users =>: rsvp_users,: object_root => false" chưa? – Bigxiang
Vâng tôi có, và điều này trong thực tế mang lại cho tôi một lỗi. Nhưng nếu tôi làm ': rsvp_users =>: rsvp_users' một mình mà không có': object_root => false', nó sẽ ổn thôi. Nhưng tôi không muốn mỗi đối tượng trong mảng có một tên. – Enzo
thử "con {: rsvp_users =>: rsvp_users} này, {: object_root => false}", nó hoạt động trên máy của tôi. – Bigxiang