Rails: group_by, затем сопоставьте детей - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть метод, который выглядит следующим образом:

def categorised_templates
  template_categories.all_parents.map do |cat|
    cat.templates.by_brand(id).group_by(&:category)
  end
end

, который возвращает что-то вроде этого:

[{"Communications":["#<Template:0x00007fef0efcdd48>","#<Template:0x00007fef0efcdb90>"]},{"Beta":["#<Template:0x00007feefe1bb008>"]}]

Как я могу визуализировать Template объекты в JSON просто как категории? Мне нужно поддерживать иерархию group_by.

1 Ответ

0 голосов
/ 28 февраля 2020

Оказалось, это было достаточно просто. Это изменение:

def categorised_templates
  arr = template_categories.all_parents.map do |cat|
    cat.templates.by_brand(id).group_by(&:category)
  end

  arr.map { |cat| cat.transform_values!(&:to_s) }
end

Возвращает этот результат.

[{"Communications":"[#<Template id: 2, ...]"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...