2013-08-24 49 views
1

我有一个Location模型,我使用Rabl以json格式呈现。我index.json.rabl看起来是这样:返回json.rabl中儿童的数量

object false 
collection @locations 

attributes :id, :name, :address, :rating 

:评级是从记录在Rating模型计算出一个整数(一Locationhas_manyRating,一个Ratingbelongs_to一个Location)。 但是现在我想要在Rabl文件中检索用于计算此值的Rating模型的行数。

我想:

child :ratings do 
    attributes :count 
end 

node(:ratings_count) { |m| @ratings.count } 

但显然它不工作...任何人都可以帮我吗?

谢谢!

+0

您在模型评分中是否有属性计数?我确定孩子(:YOUR_HAS_MANY_ASSOC){attributes:YOUR_ATTRIBUTE}正常工作。 – Bigxiang

+0

您的意思是说我需要手动添加评分中的计数属性?我不能只是在某个位置的收视率集合上使用.count吗?谢谢 ! – jbihan

+0

你是说你想在rabl中使用ratings.count? – Bigxiang

回答

4

如果我不误解你的意思。我想你想在rabl中使用rating.count。

您已经使用“节点”关闭了答案。

node(:ratings_count) { |l| l.ratings.count } 

在节点块中,局部变量“l”是上述集合中的一个对象。

+0

非常好,它效果很棒!我很接近,我不是为什么我没有想到这一点...我仍然在学习Rails,我仍然需要理解逻辑,非常感谢! – jbihan