排序包含ruby / rails中的数字的字符串

时间:2011-06-08 10:05:51

标签: ruby string ruby-on-rails-3 integer

我想根据他们有多少Facebook喜欢对我的所有位置进行排序。但facebook_likes不是integer,而是string

这是我使用的rails代码: @locations = Location.order("facebook_likes ASC").all

现在我得到这样的东西:

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

如何根据值进行排序,以便签到次数最多的位置位于顶部。从头开始使用字符串而不是整数的解决方案是什么?

谢谢你的帮助!

1 个答案:

答案 0 :(得分:9)

@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) }