我的群组模型有很多帖子,帖子有很多评论。
当我在群组中显示帖子时,我想按照最新评论的创建时间排序,如果帖子上有任何帖子,或者帖子本身的created_at。
如果有一条新评论,那么旧帖子会跳回列表的顶部。
答案 0 :(得分:4)
我会坚持采用一种不同的方法:Comment belongs_to :post
和belongs_to
接受:touch
选项。将其设置为true
,您的帖子updated_at
将根据评论的修改自动更新。这样,您就可以自由地显示按其updated_at
订购的帖子。
答案 1 :(得分:0)
您可以在posts表中添加commented_at:datetime列,然后将before_create回调添加到Post模型:
before_create :set_default_commented_at
def set_default_commented_at
self.commented_at ||= Time.now
end
并添加:触摸到评论模型的belongs_to关联:
belongs_to :post, touch: :commented_at
毕竟你可以通过commented_at专栏订购。