在我的表中我有first_name,middle_name和last_name字段。 我想按Aplhabetical順序顯示First_name Middle_name Last_name。 對於某些記錄,first_name可能爲空,對於某些記錄,last_name可能爲空,對於某些記錄,middle_name可能爲空。如果first_name空白需要顯示middle_name和last_name,如果middle_name空白需要首字母和姓氏,如果last_name空白需要顯示首字母和中間名。最後我想按字母順序顯示列表。我想如何解決這個問題?Howe做的事在ruby中排序
-3
A
回答
0
您的情況可能的解決方案。
你應該先檢測non blank
屬性:
class YourModel < ActiveRecord::Base
def representation
[first_name, middle_name, last_name].detect{ |r| r.present? }.downcase
end
end
提取物:
@objects = YourModel.all
排序對象:
@objects.sort! { |a,b| a.representation <=> b.representation }
方法present?
可從Rails 2.2.1
版開始。
http://apidock.com/rails/v2.2.1/Object/present%3F
因此在註釋討論:present?
相同!blank?
。
# File activesupport/lib/active_support/core_ext/object/blank.rb, line 19
def present?
!blank?
end
blank?
是empty?
別名。
def empty?
all? { |k, v| v && v.empty? && !v.is_a?(String) }
end
相關問題
- 1. 排序在Ruby中
- 2. 排序在Ruby中
- 3. MongoDB的排序在Ruby中
- 4. 歸併排序在Ruby中
- 5. 在Ruby中排序陣列
- 6. 排序陣列,在Ruby中
- 7. 在Ruby on Rails中安排事件
- 8. Ruby中的排序方法
- 9. 如何在Ruby中以降序排序?
- 10. 在ruby中排序數組的語法
- 11. 乾淨的方法做這樣的事情「Sentences.each.each」在Ruby中
- 12. 排序「事件」的Python中
- 13. 排序由多個條件在Ruby中
- 14. 在ruby中對數組進行排序
- 15. 在Ruby路徑名中排序.children
- 16. 在Ruby中排序節標題
- 17. 高級數組在Ruby中排序
- 18. 在ruby中排序日期列
- 19. 創建插入排序在Ruby中
- 20. 在Ruby中排序和操作散列
- 21. 自定義排序在Ruby中
- 22. 在Ruby 1.8中排序IP地址
- 23. 在Ruby中對組合進行排序
- 24. 在ruby中排序統計文件
- 25. 在Ruby on Rails中排序數組
- 26. 升級之前要做的事情Ruby
- 27. 按日期排序在Ruby中降序排列軌
- 28. 在Ruby中獲取數組排序的排列的索引?
- 29. 什麼是:管理,:所有在Ruby中做的事情?
- 30. ruby排序陣列
你是在談論普通的Ruby還是RubyOnRails(你的表是由ActiveRecord類建模的)? –
是的,我的表是由ActiveRecord類建模的 – vinothini
基於什麼字母順序? –