首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动记录同时按两列排序(不是一列,然后是另一列)

活动记录同时按两列排序(不是一列,然后是另一列)
EN

Stack Overflow用户
提问于 2018-01-25 01:14:42
回答 1查看 26关注 0票数 1

所以我在这个问题上被难住了。我知道这是一个愚蠢的例子,但它让人明白了这一点。假设我有一个名为cars的模型,其中有三列:个人列、业务列和颜色列。前两列是车牌号码,最后一列明显是颜色

现在我想在视图中显示这个模型,我只想显示车牌和颜色,但我想按车牌排序,无论是个人还是业务。车牌只会出现在前两列中的一列。这是我尝试过的,但没有成功,它首先按个人车牌排序,然后按业务排序。

代码语言:javascript
复制
Car.all.order('personal || business') do |car|
  puts car.personal << car.business << ' ' << car.color
end

虽然它打印正确,但它不会像我想要的那样排序。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-25 02:06:08

我不认为你可以使用".order“,因为它会影响实际创建的数据库查询,而且据我所知,你不能通过一个”简单的“(rails生成的)查询来做你想做的事情。

但是,您可以在从数据库中获得结果后对其进行排序:

代码语言:javascript
复制
cars = Car.all.sort { |a,b| (a[:personal] || a[:business]) <=> (b[:personal] || b[:business])  }

然后使用cars.each遍历它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48428139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档