我有兩個簡單的類如何用子對象構建一個Mongoid對象的json對象?
class Band
include Mongoid::Document
field :name, type:String
has_many :members
end
class Member
include Mongoid::Document
field :name, type: String
belongs_to :band
end
我已經創建了兩個對象用於測試目的後
Band.create(title: 'New Band')
Band.members.create(name: 'New Member')
我下一個DB狀態:
> db.bands.find()
{ "_id" : ObjectId("..."), "title" : "New Band" }
> db.members.find()
{ "_id" : ObjectId("..."), "name" : "New Member", "band_id" : ObjectId("...") }
當我嘗試建立JSON對象樂隊對象我得到的數據沒有兒童:
{"_id":"...","title":"New Band"}
但我需要類似的東西:
{"_id":"...","title":"New Band", "members" : {"_id":"...","title":"New Member"}}
如何構建JSON帶孩子?
對此的一個警告:似乎所有的'.as_json()'選項都會傳遞給任何嵌套的對象,例如,如果您有'a_band.as_json(只:[:名稱],方法:[:members ])',那麼成員只會包含'name'屬性。例如,如果你想要他們的年齡,你必須手動包含該字段,比如'a_band.as_json(只有:[:name,:age],方法:[:members])' – colllin