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