我想按创建或更新帖子的频率对董事会分类。我已经可以执行此操作,但是精确的订购仍然处于关闭状态。例如,如果我有2个帖子(A,B)并更新了B,则该帖子仍排在A的第二位。我以前在PostgreSQL中遇到过此问题,并使用对象的id
作为辅助排序列来解决了该问题。不幸的是,在这种情况下,我要按职位去。根据我的代码,似乎是什么问题?
class Board < ApplicationRecord
has_many :posts
end
class Post < ApplicationRecord
belongs_to :board
end
class StaticController < ApplicationController
def index
@active_boards = Board
.includes(:posts)
.where.not(posts: { board_id: nil })
.order('posts.created_at ASC', 'posts.updated_at ASC')
.limit(10)
end
end
答案 0 :(得分:2)
第一种可能性是在插入帖子时也设置updated_at
,然后您可以简单地使用该列。
另一个选择是ORDER BY max(created_at, updated_at)
。