无法在Rails中按字母顺序正确排序

时间:2016-08-08 18:59:08

标签: ruby-on-rails ruby-on-rails-4

我在控制器中有这个:

@players = Player.all.order(:last_name).group_by{|player| player.last_name[0]}

我认为:

- @players.each do |letter, players|

  %h2= letter

  - players.each do |player|

这导致玩家按字母顺序分组,但在这些组中按字母顺序排列 ,例如:

  • 阿尔穆尼亚
  • 亚当斯
  • ž安卡先生

换句话说,亚当斯当然应该来到阿尔穆尼亚。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

有点令人惊讶,但我不确定group_by是否保证一旦分组后元素的顺序。修复方法是将players.each循环调整为players.sort_by(&:last_name).each