我正在处理购物车,里面有很多产品。这些产品可以由多家不同的公司销售。我要做的是选择唯一的公司,这样我就可以为每个供应商创建一个订单。
hack
companies = []
@cart.products.each { |p| companies << p.company }
companies.uniq
#create order for each company
我不确定#pluck
是否应该在这里使用,但我知道必须有一种更有效的方式来“独特地”收集我的公司。 #uniq
似乎对我不起作用,@cart.products.pluck(:company)
我的出价模式中没有:company_id
,这是has_many/has_one
关系
答案 0 :(得分:1)
pluck
用于检索提供的列中的值数组,如:
@cart.products.pluck(:company_id) # => [1,2,3]
对于收集公司,您可以companies = @cart.products.collect(&:company).uniq