我有一个Product
模型,has_many
ProductImage
s。
这些图像中的每一个都有一个称为name
的属性。
,
产品:t恤
t恤有图片:image1 name:blue
, image2 name:blue
, image3 name:green
是否有一个方法在ActiveRecord组所有的T-shirt
的图像到数组的数组基于名称?我想要的东西,将返回[[image1, image2], [image3]]
,因为image1和image2有相同的颜色,他们被分组到一个数组。
文档(http://guides.rubyonrails.org/active_record_querying.html#group)说.group(:name)
不会做我想要的:"这将为数据库中有订单的每个日期提供单个Order对象。"
根据您想要的输出,您可能想要查看Ruby Enumerable group_by
方法。这将返回一个哈希值然后你可以得到values
:
product_id = <T-Shirt Product ID Here>
ProductImage.where(product_id: product_id).group_by(&:name).values
这将给出一个数组的数组,其中productimage按名称在内部数组中分组在一起。