我想通过在文件夹模型中创建一个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