在Activerecord中,如果订单字段完全相同,是否有任何默认订单?

时间:2014-02-10 12:08:58

标签: mysql ruby-on-rails activerecord

我一直在苦苦挣扎。我有一个包含许多项目的文档模型

class Document < ActiveRecord::Base
  has_many :items, dependent: :destroy, order: 'weight ASC'
  ...
end

正如您所看到的,我通过权重字段(默认为0的整数)对子项进行排序。我的问题来自于所有的重量是相同的,在大多数情况下,孩子看起来像是按照ID排序,但是少数他们不是,看起来如此随机。订单字段具有相同值时是否有任何特定顺序?

感谢。

2 个答案:

答案 0 :(得分:1)

那么,这个细节是依赖于实现的。如果再次运行此查询,则无法保证您的文档的顺序相同。有一个similar question的链接,有几个答案。

答案 1 :(得分:1)

我也经历过同样的事情。有时候结果不会按id的顺序排序。更好,也添加id顺序。

class Document < ActiveRecord::Base
  has_many :items, dependent: :destroy, order: 'weight ASC, id ASC'
  ...
end