0

我的组模型有_many 帖子,帖子有_many 评论。

当我在组中显示帖子时,我想按最近评论的 created at 排序,如果帖子上有任何评论,或者按帖子本身的 created_at 排序。

因此,如果旧帖子有新评论,它会跳回列表顶部。

4

2 回答 2

4

我会坚持一种不同的方法:你的Comment belongs_to :postbelongs_to接受:touch选项。将其设置为true,您的帖子updated_at将根据评论的修改自动更新。这样您就可以自由地显示您的帖子,按他们的顺序排列updated_at

于 2012-11-28T12:32:42.483 回答
0

您可以将 commented_at:datetime 列添加到 posts 表中,然后将 before_create 回调添加到 Post 模型:

before_create :set_default_commented_at

def set_default_commented_at
  self.commented_at ||= Time.now
end

并将 :touch 添加到 Comment 模型的 belongs_to 关联中:

belongs_to :post, touch: :commented_at

毕竟,您将能够通过 commented_at 列订购。

于 2012-11-28T12:34:35.730 回答