轨道4+;ActiveRecord:如何使用.group返回一个记录数组而不仅仅是一个记录?
我有一个轨道4+;ActiveRecord:如何使用.group返回一个记录数组而不仅仅是一个记录?,activerecord,Activerecord,我有一个产品模型,它有许多产品图像s 每个图像都有一个名为name的属性 例: 产品:T恤 T恤上有图像:image1名称:蓝色,image2名称:蓝色,image3名称:绿色 ActiveRecord中是否有一种方法可以根据名称将所有T-shirt的图像分组到一个数组中?我想要返回[[image1,image2],[image3]],因为image1和image2具有相同的颜色,它们被分组到一个数组中 文档()说.group(:name)不会做我想要的事情:“这将为数据库中有订单的每个日期提供
产品
模型,它有许多产品图像
s
每个图像都有一个名为name
的属性
例:
产品:T恤
T恤上有图像:image1名称:蓝色
,image2名称:蓝色
,image3名称:绿色
ActiveRecord中是否有一种方法可以根据名称将所有T-shirt
的图像分组到一个数组中?我想要返回[[image1,image2],[image3]]
,因为image1和image2具有相同的颜色,它们被分组到一个数组中
文档()说.group(:name)
不会做我想要的事情:“这将为数据库中有订单的每个日期提供一个订单对象。”根据您想要的输出,您可能希望通过方法签出Ruby Enumerablegroup\u。这将返回一个散列,然后您可以获得值
:
product_id = <T-Shirt Product ID Here>
ProductImage.where(product_id: product_id).group_by(&:name).values
产品标识=
ProductImage.where(product\u id:product\u id).groupby(&:name).values
这将提供一个数组,其中ProductImages按名称在内部数组中分组