Ruby - 按属性降序对对象数组进行排序

ltd*_*dev 2 ruby sorting json ruby-on-rails

我有这个 Json 对象数组

"students": [{
    "id": 1,
    "first_name": "John",
    "last_name": "Doe",
    "age": "14",
  }, {
    "id": 2,
    "first_name": "Victoria",
    "last_name": "Secret",
    "age": "9",
  }, {
    "id": 3,
    "first_name": "Jim",
    "last_name": "Morrison",
    "age": "16",
  }, {
    "id": 4,
    "first_name": "Jack",
    "last_name": "Daniels",
    "age": "7",
  },
  }]
Run Code Online (Sandbox Code Playgroud)

我想在我的显示他们index.html.erb 按年龄排序DESC顺序。我已经完成了一半,我已经设法对它们进行了排序,但不是按确切的 DESC 顺序排序。这是我的循环

<% @classroom['students'].sort_by { |st| st['age'] }.each do |student| %>
Run Code Online (Sandbox Code Playgroud)

这是我想要的结果:

16,  Jim,     Morrison
14,  John,    Doe
9,  Victoria, Secret
7,  Jack,     Daniels
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

14,  John,    Doe
16,  Jim,     Morrison
7,  Jack,     Daniels
9,  Victoria, Secret
Run Code Online (Sandbox Code Playgroud)

Urs*_*sus 5

你错过了让年龄成为一个数字

@classroom['students'].sort_by { |st| -st['age'].to_i }
Run Code Online (Sandbox Code Playgroud)

我添加了一个,-因为您希望它们按降序排列。除此以外

@classroom['students'].sort_by { |st| st['age'].to_i }.reverse
Run Code Online (Sandbox Code Playgroud)