我想展示一个画廊,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 中的这个真值或假值对其进行排序? 我只是问,因为在这个框架/语言(ruby)中隐藏了很多我不知道的东西,我想知道他们的工作是否在我之前完成。