Rails使用自然排序顺序排序查找和排序

时间:2010-09-15 22:36:59

标签: sql ruby-on-rails

我想返回一份分散的国家名单,其中Åland将在阿塞拜疆之后而不是在津巴布韦之后。换句话说,我想忽略特殊字符,只需将“Å”视为“A”,将科特迪瓦中的“ô”视为常规“o”。是否有Rails方法或gem来执行此操作或者我是否需要执行某种自定义SQL(如果是,那是什么类型)?

1 个答案:

答案 0 :(得分:1)

请看How do I replace accented Latin characters in Ruby?

您应该可以按照规范化名称对国家/地区进行排序。

类似的东西:

@countries.sort{|x,y| x.name.chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.to_s <=> y.name.chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.to_s}