строка сортировки, содержащая числа в ruby ​​/ rails - PullRequest
8 голосов
/ 08 июня 2011

Я хочу отсортировать все свои местоположения в зависимости от того, сколько лайков в Facebook у них есть.Но facebook_likes это не integer, это string.

Это код рельсов, который я использую: @locations = Location.order("facebook_likes ASC").all

Прямо сейчас я получаю что-то вроде этого:

  • 10
  • 100
  • 201
  • 2
  • 304
  • 400000
  • 50
  • ...

Как сортировать в зависимости от значения, чтобы местоположение с наибольшим количеством проверок было сверху.Это решение с использованием строк вместо целых чисел с ошибками в начале?

thx за вашу помощь!

1 Ответ

9 голосов
/ 08 июня 2011
@locations = Location.all.sort { |a, b| b.facebook_likes.to_i <=> a.facebook_likes.to_i }

или

@locations = Location.all.sort_by { |a| -(a.facebook_likes.to_i) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...