所以我在这个问题上被难住了。我知道这是一个愚蠢的例子,但它让人明白了这一点。假设我有一个名为cars的模型,其中有三列:个人列、业务列和颜色列。前两列是车牌号码,最后一列明显是颜色
现在我想在视图中显示这个模型,我只想显示车牌和颜色,但我想按车牌排序,无论是个人还是业务。车牌只会出现在前两列中的一列。这是我尝试过的,但没有成功,它首先按个人车牌排序,然后按业务排序。
Car.all.order('personal || business') do |car|
puts car.personal << car.business << ' ' << car.color
end虽然它打印正确,但它不会像我想要的那样排序。有什么想法吗?
发布于 2018-01-25 02:06:08
我不认为你可以使用".order“,因为它会影响实际创建的数据库查询,而且据我所知,你不能通过一个”简单的“(rails生成的)查询来做你想做的事情。
但是,您可以在从数据库中获得结果后对其进行排序:
cars = Car.all.sort { |a,b| (a[:personal] || a[:business]) <=> (b[:personal] || b[:business]) }然后使用cars.each遍历它们。
https://stackoverflow.com/questions/48428139
复制相似问题