2013-08-24 3 views
1

У меня есть модель Location, которую я визуализирую в формате json с помощью Rabl. Мой index.json.rabl выглядит таким образом:Возвращаемое количество детей в json.rabl

object false 
collection @locations 

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

: рейтинг представляет собой целое число вычисляется из записей в Rating модели (Locationhas_manyRating, Ratingbelongs_toLocation). Но теперь я хотел бы получить также в файле 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 в Rating? Не могу ли я как-то использовать .count в коллекции рейтингов местоположения? Благодаря ! – jbihan

+0

Вы имеете в виду, что хотите использовать ratings.count в rabl? – Bigxiang

ответ

4

Если я не понимаю, что вы имеете в виду. Я думаю, вы хотите использовать rating.count в rabl.

Вы закрыли ответ, используя «узел».

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

В блоке узла локальная переменная «l» является одним из объектов коллекции выше.

+0

Отлично, он отлично работает! Я был близок, я не понимаю, почему я не думал об этом ... Я все еще изучаю Rails, мне все еще нужно понять логику, спасибо большое! – jbihan

Смежные вопросы