我想通過在文件夾模型中創建一個as_json方法來將這些孩子包含在to_json結果中。Ruby on Rails + Active_Record:如何在結果中包含子計數?
def as_json(options={ })
super(
options.merge(
:include => {
:children => { }
}
)
)
end
上面的代碼給了我一個兒童的列表,但我想要的是包括計數而不是兒童列表。我也想過濾它只有「活躍」的孩子。
我似乎無法找出一個有效的方法來做到這一點。
我正在使用下面的代碼來返回文件夾列表。
def index
@folders = Folder.all(:order => "Name")
respond_with(@folders) do |format|
format.jsonp { render :json => @folders, :callback => params[:callback] }
end
end
最後,我想確保count不是返回所有結果而只是json。 json是最重要的,但我確實希望確保它在其他人中也是如此。
我想我可以通過使用.size將查詢後的@folders返回的每個文件夾添加到計數。然而,這似乎並沒有工作...
接下來,我開始尋找到添加一個方法到文件夾模式,如...
def child_count
write_attribute(:child_count, children.size)
end
但看着它,我意識到這不是真的去工作...
所以,現在我正在調查:選擇做一些SQL魔術......但我真的不希望去那條路線,如果有一個更清潔的方式。
提示讚賞!
好吧我想出了答案,但我不能回答我自己的問題,因爲我的聲譽小於100.所以這裏有一個鏈接到我的博客上的答案... – Altonymous