Rails находят и сортируют, используя естественную сортировку порядка сортировки - PullRequest
1 голос
/ 16 сентября 2010

Я хочу вернуть нумерованный список стран, в которых Аландские острова идут после Азербайджана, а не после Зимбабве. Другими словами, я хочу игнорировать специальные символы и просто рассматривать «Å» как «А», а «ô» в Кот-д'Ивуаре - как обычное «о». Есть ли метод Rails или гем для этого или мне нужно выполнить какой-то пользовательский SQL (и если да, то какой)?

1 Ответ

1 голос
/ 16 сентября 2010

Посмотрите на Как заменить акцентированные латинские символы в 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...