回答
你可以欺騙,並得到它返回一個數字:
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