我想展示一个画廊,products其中包括既可以出售也可以出售的产品.只有我希望products待售的那些出现在列表的前面,而非待售的对象将出现在列表的末尾.
我完成此任务的一个简单方法是创建两个列表,然后合并它们(一个on_sale?对象列表和一个not on_sale?对象列表):
available_products = []
sold_products = []
@products.each do |product|
  if product.on_sale?
    available_products << product
  else
    sold_products << product
  end
end
...但是对于我现有应用程序的结构,由于我的代码奇怪,这需要过多的重构(我失去了我的分页,我宁愿不重构).如果有一种方法可以通过我的product模型方法对现有的对象列表进行排序,on_sale?这会返回一个布尔值.
是否可以更优雅地遍历现有列表并通过rails中的true或false值对其进行排序? 我只是问,因为有很多我不知道隐藏在这个框架/语言(ruby)中,我想知道他们是否在我之前完成了工作.