我在Db上有一个包含两个字段的表:group
和text
我想检索所有记录并转换为按group
字段分组的哈希值,并包含所有文本的数组,如下所示:
{
'group_1': ['text1','text2',...]
'group_2': ['text1','text2',...]
'group_3': ['text1','text2',...]
}
我用这个
部分地完成了它MyModel.all.group_by(&:group)
但它返回一个包含所有完整AR对象的数组,我只想要一个包含所有文本字符串的数组
我尝试使用map
,但我可以在不使用each
有什么想法吗?
答案 0 :(得分:1)
尝试以下方法:
MyModel.all.select([:text, :group]).group_by(&:group)
如果您想使用迭代器(例如:each
/ map
),请按以下步骤操作:
grouped_models = MyModel.all.group_by(&:group)
grouped_models.map do |group, models|
grouped_models[group] = models.map(&:text)
end
grouped_models
# => { 'group_1' => ['text1', 'text2'], 'group_2' => ['text'] }