我有一个产品控制器,在索引操作产品中,使用以下代码对“成本”列进行排序:
@products = Product.order(:cost)
我想保持这种行为,但也分组产品有相同的EAN。
这是实际的行为:
这是预期的行为:
编辑:
感谢@RocKhalil的回答:
products = Product.order(:cost)
products_hash = Hash.new
products.each_with_index do |product, i|
unless product.ean.present?
products_hash["index#{i}"] = product
else
products_hash[product.ean] = [] unless products_hash[product.ean]
products_hash[product.ean] << product
end
end
@products = products_hash.values.flatten发布于 2017-02-25 23:11:28
您不应该使用group,您应该简单地以正确的方式对它们进行排序:
@products = Product.order(:ean, :cost)EDIT
products = Product.order(:cost)
products_hash = Hash.new
products.each do |product|
products_hash[product.ean] = [] unless products_hash[product.ean]
products_hash[product.ean] << product
end
products_hash.map{|k,v| puts v }https://stackoverflow.com/questions/42454708
复制相似问题