Rails:group_by 然后映射孩子
Posted
技术标签:
【中文标题】Rails:group_by 然后映射孩子【英文标题】:Rails: group_by then map children 【发布时间】:2020-06-11 23:04:55 【问题描述】:我有一个看起来像这样的方法:
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】:事实证明这很容易。这种变化:
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, ...]"]
【讨论】:
以上是关于Rails:group_by 然后映射孩子的主要内容,如果未能解决你的问题,请参考以下文章