1

我有以下在我的本地机器上运行良好(运行 MySQL DB)但在 Heroku 上排序顺序是错误的,而不是 1,2,3,4,5...11,12,13 等我得到1,11,12,13,2,3,4,5……!

<% @release.releases_tracks.sort { |a,b| a.position <=> b.position }.each do |releases_track| %>
      <tr>
        <td><%= releases_track.position %></td>
        <td><%= releases_track.track.name %></td>
        <td><%= releases_track.track.artists.map { |a| a.name}.join (", ") %></td>
        <td><%= releases_track.track.isrc %></td>
      </tr>
<% end %>

我认为是因为我的位置列是一个 varchar,但我已更改为整数,迁移了 Heroku 上的数据库,它仍在执行此操作!这是怎么回事?

4

1 回答 1

2

看起来该列仍然是 varchar 或字符串。您可以在 Heroku 的控制台上从表中加载一个对象并检查该字段以确保它确实已更改为整数吗?

起初,我认为这可能是 Heroku 使用的 mySql 和 Postgres 之间的差异造成的,但我认为这里不是这种情况。

此外,您可以使用 ActiveRecord 来处理排序...

results = YourModel.where('blah...blah..').order('id desc')
于 2012-05-01T19:17:33.070 回答