我有以下在我的本地机器上运行正常(运行MySQL数据库)但在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上迁移了数据库,它仍然在做它!发生了什么事?
答案 0 :(得分:2)
看起来列仍然是varchar或string。你可以在Heroku的控制台上加载表中的对象并检查字段以确定它是否确实已经变为整数?
起初,我认为这可能是由Heroku使用的mySql和Postgres之间的差异造成的,但我不认为这是这种情况。
此外,您可以使用ActiveRecord来处理排序......
results = YourModel.where('blah...blah..').order('id desc')