Ruby on rails Rails显示带有最新评论的帖子

Ruby on rails Rails显示带有最新评论的帖子,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,使用关系,我的帖子有很多评论 如何显示包含最新评论的帖子?或者,更重要的是,我如何显示带有特定类型最新评论的帖子?每个评论都有一个“comment_type”字段,所以我想查找最近使用特定评论类型评论的所有帖子。这应该是一个简单的作用域,但无法计算出来 这是我目前拥有的内容,但它仍然会返回所有帖子,不会过滤掉最近没有com\u date\u due类型评论的帖子 @posts=Post.包括(:评论)。即将发布 scope :upcoming, -> { order('comm

使用关系,我的帖子有很多评论

如何显示包含最新评论的帖子?或者,更重要的是,我如何显示带有特定类型最新评论的帖子?每个评论都有一个“comment_type”字段,所以我想查找最近使用特定评论类型评论的所有帖子。这应该是一个简单的作用域,但无法计算出来

这是我目前拥有的内容,但它仍然会返回所有帖子,不会过滤掉最近没有
com\u date\u due
类型评论的帖子

@posts=Post.包括(:评论)。即将发布

  scope :upcoming, -> {
    order('comments.created_at ASC')
    .where('comments' => {com_type: 'com_date_due', com_date: Time.now-1.day..Time.now+1.week})
  }
更新:

这里有一个我想要如何获取父项的时间轴流程:我通过每个“注释”进行查询,按照我当前的方法,它仍然会返回工具,即使最相关的“截止日期”是最上面的,并且不应该在日期查询内。如何根据此时间线中的关联记录获取项目?我只需要查询相关联记录中的第一项

如何显示包含特定类型最新评论的帖子

#app/models/post.rb
类Post(type='com_date_due'){包括(:评论)。其中(评论:{comment_type:type,created_at:Time.now-1.day..Time.now+1.week})。顺序(评论:{created_at::asc})
结束

你的问题相当广泛,因此我希望使用以下内容:
@posts=Post。即将发表的评论
。如果你有更具体的要求,你最好用它们来修改你原来的问题。

添加一个
包含
注释
对不起,该对象已经包含注释了。让我更新一下。把它添加到scope@SunnyK,没有变化。我要做的是按
com\u日期
对特定类型的孩子进行排序,然后只选择第一条注释,然后选择在该范围内有
child.com\u日期
的家长。谢谢,Rich。这仍然包括带有无关评论的帖子。我很难解释…NDA太差劲了。我想获取所有
项目
,以及最新的相关记录的
到期日
。因此,如果一个项目有3个“到期日”,最近一个是+1年(一个是本周到期),但它查询本周的到期日,它将选择该项目,因为它在本周内有一个关联的到期日,即使有更准确的未来到期日。有道理?如果更好,请聊天。是的,我想用
类型
“到期日”的最新评论抓取这篇文章,该评论的
项目日期在该时间范围内。再说一次,因为我很难弄清楚,我当前的查询获取了该日期范围内的所有注释……我不知道如何限制或排除以前的截止日期。跟着?
#app/models/post.rb
class Post < ActiveRecord::Base
   scope :upcoming_comments, ->(type='com_date_due') { includes(:comments).where(comments: {comment_type: type, created_at: Time.now-1.day..Time.now+1.week}).order(comments: {created_at: :asc}) }
end