Ruby on rails 按在创建的关联排序,如果没有关联,则按自己创建的排序

Ruby on rails 按在创建的关联排序,如果没有关联,则按自己创建的排序,ruby-on-rails,sorting,associations,Ruby On Rails,Sorting,Associations,我的小组模型有很多帖子,帖子有很多评论 当我在一个组中显示帖子时,我想按照最近评论的创建地址(如果有)或帖子本身的创建地址进行排序 因此,如果一篇旧帖子有新的评论,它会跳回列表的顶部。我会坚持一种稍微不同的方法:你的评论属于:post和属于接受:touch选项。将其设置为true,您的帖子的updated\u at将在评论修改时自动更新。通过这种方式,您可以在上自由显示按其更新的排序的帖子。我会坚持一种稍微不同的方法:您的评论属于:帖子和属于接受:触摸选项。将其设置为true,您的帖子的upda

我的小组模型有很多帖子,帖子有很多评论

当我在一个组中显示帖子时,我想按照最近评论的创建地址(如果有)或帖子本身的创建地址进行排序


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

我会坚持一种稍微不同的方法:你的
评论属于:post
属于
接受
:touch
选项。将其设置为
true
,您的帖子的
updated\u at
将在评论修改时自动更新。通过这种方式,您可以在

上自由显示按其更新的
排序的帖子。我会坚持一种稍微不同的方法:您的
评论属于:帖子
属于
接受
:触摸
选项。将其设置为
true
,您的帖子的
updated\u at
将在评论修改时自动更新。通过这种方式,您可以自由显示按其
更新位置排序的帖子

您可以将注释日期时间列添加到帖子表中,然后在创建回调之前添加到帖子模型中:

before_create :set_default_commented_at

def set_default_commented_at
  self.commented_at ||= Time.now
end
并添加:触摸到属于注释模型的关联:

belongs_to :post, touch: :commented_at

毕竟,您可以在列中按注释进行订购。

您可以将注释的日期列添加到posts表中,然后在创建回调之前添加到Post模型中:

before_create :set_default_commented_at

def set_default_commented_at
  self.commented_at ||= Time.now
end
并添加:触摸到属于注释模型的关联:

belongs_to :post, touch: :commented_at
毕竟,您可以在列中按注释进行订购