Ruby on rails ActiveRecord对象的奇怪排序

Ruby on rails ActiveRecord对象的奇怪排序,ruby-on-rails,activerecord,ruby-on-rails-5,Ruby On Rails,Activerecord,Ruby On Rails 5,我正试图通过视图中的:id来获取记录。我在控制器中有按:id排序的记录,如下所示 @bands=Band.where(可用:true).order(:id) 当应用程序启动时,一切看起来都很正常,但随着记录的更新,订购行为变得不稳定。通常,最近编辑的记录会移到最后,但并不总是这样。这不应该发生,因为记录是按:id排序的,不应该更改 对于上下文,视图中的 还要注意的是,在rails控制台中,这两个命令都正确地返回排序结果(这使得这个问题更加奇怪): ActiveRecord::Base.co

我正试图通过视图中的
:id
来获取记录。我在控制器中有按
:id
排序的记录,如下所示

@bands=Band.where(可用:true).order(:id)
当应用程序启动时,一切看起来都很正常,但随着记录的更新,订购行为变得不稳定。通常,最近编辑的记录会移到最后,但并不总是这样。这不应该发生,因为记录是按
:id
排序的,不应该更改

对于上下文,视图中的


还要注意的是,在rails控制台中,这两个命令都正确地返回排序结果(这使得这个问题更加奇怪):

ActiveRecord::Base.connection.execute(“从可用的条带中选择*='true'按id排序”)

另外请注意,当我加载
索引
视图并观察rails服务器时,我可以看到结果的顺序是而不是


我还可以看到已经执行的sql查询,它忽略了
顺序
部分,在查询中根本没有提到顺序

实际上,我认为这是不可能的。 但是,试试这个:

@bands = Band.where(available: true).order(:id).to_a

嘿,弗雷德,不要问问题作为答案。最好将问题作为对原始问题的评论发布。谢谢您的帮助。事实证明,我编辑的变量是正确的,但操作错误。@smathy公平地说,Fred当时只有46个代表,而你直到50岁才获得特权。@mu yep没有责骂,只是指出了一个重要的区别。事实上,我认为他的编辑是一个很大的改进(尽管,显然不是正确的答案)。和测试逻辑。避免类似的情况发生在错误的代码更改位置总是有帮助的。因此,首先,请确保停止rails服务器(并停止/终止任何
spring
进程),然后重新启动它。假设这不能解决问题-请显示更多代码,复制/粘贴完整的索引操作,以及显示正在运行的SQL查询的日志,您的
Band
模型是否有任何
默认范围
?您确定您使用的
@bands
来自
@bands=Band.where(可用:true)。顺序(:id)
?@muistooshort你是对的。我正在另一个控制器操作中编辑一个实例变量(同名)
@bands = Band.where(available: true).order(:id).to_a