Я работаю над проектом, который должен сделать некоторые базовые статистические отчеты.Например, модель Post
имеет поле внешнего ключа category_id
, относящееся к записи в модели Category
, и логическое поле published
со значением по умолчанию false
(наряду с title
, body
, author
- но они не имеют отношения к этому вопросу).
Я хочу настроить и создать вложенную группировку для итерации по модели Post
и группировки записей Post
по их Category
, а затем в каждой категории, далее группировать по состоянию published
поле, чтобы дать count
для каждой группы, чтобы отобразить результат, подобный следующему:
Categories
Tutorial
Published: 14 posts
Draft: 3 posts
Q & A
Published: 14 posts
Draft: 3 posts
Letter
Published: 14 posts
Draft: 3 posts
Ниже приведен нефункциональный код, с которого я начал:
<% @posts.group(:category).each do |category| %>
<% category.label %>
<% category.each.group(:published).count.each do |published_status, count| %>
<%= published_status %>: <%= pluralize(count, "post") %>
<% end %>
<% end %>
Буду очень признателен за любые отзывы или предложения о том, как изменить приведенный выше код.Спасибо