回答
你可以欺骗,并得到它返回一个数字:
sort_by { |a| a.thing ? 0 : 1 }
您可以使用分区,然后压平的结果:
partition{|v| v == true}.flatten
我认为这个答案表示意图更多.... – 2014-09-17 21:46:16
如果你想在安全的一面,并避免任何意想不到的变化,你可能想使用'flatten( 1)'。但是,如果你知道元素不能被平滑,那么上面的代码就可以更简洁了。 http://ruby-doc.org/core-2.3.0/Array.html#method-i-flatten – 2016-01-07 23:26:17
通过使用ActiveRecord's order(包括在Rails的):
collection.order(thing: :desc)
最佳答案!让我们在SQL端进行排序,而不是在检索到的记录中。 – Roman 2015-06-08 15:26:35
由于这里代表了几种不同的方式,我继续进行基准测试看看这是最快的,排序基于布尔属性27000项:
Rehearsal ---------------------------------------------
sort_by 0.070000 0.000000 0.070000 ( 0.075203)
partition 0.110000 0.000000 0.110000 ( 0.114667)
order 0.000000 0.000000 0.000000 ( 0.000046)
------------------------------------ total: 0.180000sec
user system total real
sort_by 0.010000 0.000000 0.010000 ( 0.016611)
partition 0.110000 0.000000 0.110000 ( 0.111384)
order 0.000000 0.000000 0.000000 ( 0.000047)
所以,是的,保持事物的SQL方面绝对会让事情更快。
- 1. 与sqlite的布尔的布尔值
- 2. 布尔值与tinyint(1)在MySQL中的布尔值
- 3. 如何验证Rails中的布尔值
- 4. Rails sort_by方法,如果值不为空
- 5. Rails中的布尔字段
- 6. HSQLDB中的布尔列与默认值
- 7. 的Rails从一组布尔值
- 8. 闰年与布尔值
- 9. sql JOIN与布尔值WHERE
- 10. 3路布尔值与Java
- 11. 问题与setVisible(布尔值)
- 12. 布尔(布尔)值切换
- 13. 基于Rails中布尔值的数据库列锁定值
- 14. rails 4更新布尔值使用link_to
- 15. 在rails下计算布尔值
- 16. Rails 4 - 点击布尔值为false
- 17. Rails布尔值 - True和False与1和0
- 18. 带空值的Ruby sort_by
- 19. Python中的布尔值
- 20. java中的布尔赋值
- 21. Select()中的布尔值
- 22. OracleDbType中的布尔值
- 23. Python中的布尔值
- 24. Hibernate中的布尔真值
- 25. Java中的布尔值
- 26. Ruby中的布尔值
- 27. Lua中的SQLite布尔值
- 28. OrderBy与AngularJS ng-repeat的布尔值
- 29. MySQL的合并记录与布尔值
- 30. 隐式转换为布尔值,并与布尔文字
这些做的伎俩...非常感谢 – 2013-05-20 23:09:15