Rails在同一语句中映射唯一值和顺序

时间:2016-04-23 07:29:52

标签: ruby-on-rails

以下语句标识所有唯一项

@products = @volumes.map(&:product).uniq

然而,鉴于进一步处理,目标是订购物品。以下类型的语句将不会处理,因为undefined method 'order' for #<Array:

@products = @volumes.map(&:product).order("max_units DESC").uniq

如何简洁地完成这项工作?

2 个答案:

答案 0 :(得分:0)

@volumes是ActiveRecord::Relation。当你使用map时,它会返回一个没有实现order方法的Ruby数组

答案 1 :(得分:0)

Product.where(id: @volumes.map(&:id)).order("max_units DESC")