我正在尝试按视图中的:id
使记录排序。我在控制器中按:id
排序了记录,就像这样
@bands = Band.where(available: true).order(:id)
应用程序启动时,一切看起来都很正常,但是随着记录的更新,订购行为会变得很奇怪。大多数情况下,最近编辑的记录会移到最后,但并非总是如此。由于记录是由:id
排序的,因此不应该发生这种情况
对于上下文,在视图中类似
<% @bands.each do |b| %>
<%= b.name %>
<% end %>
还请注意,在rails控制台中,这两个命令均会正确返回 有序结果(这使这个问题更加陌生):
ActiveRecord::Base.connection.execute("SELECT * FROM bands WHERE available = 'true' ORDER BY id")
和
Band.where(available: true).order(:id)
还请注意,当我加载index
视图并观察Rails服务器时,可以看到结果不是的顺序正确。
我还可以看到已执行的sql查询,它忽略了order
部分,只是在查询中没有提及顺序
答案 0 :(得分:1)
实际上,我认为不可能。 但是,尝试一下:
@bands = Band.where(available: true).order(:id).to_a