Dokumen to_json ActiveRecord menyatakan ini untuk menangani dua model bertumpuk, yang mana komentar disarangkan dalam postingan :
konata.to_json(:include => { :posts => {
:include => { :comments => {
:only => :body } },
:only => :title } })
# => {"id": 1, "name": "Konata Izumi", "age": 16,
"created_at": "2006/08/01", "awesome": true,
"posts": [{"comments": [{"body": "1st post!"}, {"body": "Second!"}],
"title": "Welcome to the weblog"},
{"comments": [{"body": "Don't think too hard"}],
"title": "So I was thinking"}]}
Misalkan saya memiliki dua model yang bertingkat, tetapi tidak bertumpuk dalam. Katakanlah ini adalah model pengguna dan model komentar. Model yang disarangkan akan menjadi apa yang saya sebut saudara yang bersarang.
Saya ingin json saya terlihat seperti ini:
x = {
"Blog": {
"Comments": [
{"id":1,"name":"John Doe"},
{"id":2,"name":"Don Joeh"}
],
"User": [
{"id":2,"company":"ACME"},
{"id":4,"company":"BUD"}]
}
}
Ketika saya menggunakan metode penyertaan dua kali, yang saya dapatkan adalah serangkaian json yang sangat bersarang, di mana pengguna adalah anak-anak dari komentar. apa yang salah?!
data.to_json(
:include => { :blog => {
:include => [{ :comments => {
:except => SKIPPED_COLUMNS,
:methods => [:_type]
}},
{ :users => {
:except => SKIPPED_COLUMNS,
:methods => [:_type]
}}],
:except => SKIPPED_COLUMNS,
:methods => [:_type]
}},
:except => SKIPPED_COLUMNS,
:methods => [:_type]
)