我有一个 Rails 模型,假设用户与 Post 有很多关系。Post 包含一个名为 position 的属性,用于存储位置(acts_as_list gem)。位置存储用户帖子列表中的位置(顺序不是由于创建/修改帖子)。此外,帖子存储了时间戳(t.timestamps
在迁移中)
所以我在 User.rb 中定义了以下内容:
has_many :post, :order => "position", :dependent => :destroy
但是,当我这样做时User.first.posts
,帖子不是按位置排序的。我已经检查过,正在查询的 sql 包含以下内容:
ORDER BY post.created_at DESC, position
所以 created_at 仍在使用中。
如何按位置排序而不使用 created_at 属性?
提前致谢!
解决方案 我在 Post 中定义了一个默认范围,该范围正在创建不希望的订单。
问题解决了