1

这个查询有些奇怪,我无法解决

我有一个有很多评论的帖子模型。我想获取过去 24 小时内的评论

p=Post.first

 p.comments.where("(:t - comments.created_at) <= :d", t: Time.now, d: 1.day)
  Comment Load (1.0ms)  SELECT "comments".* FROM "comments" WHERE "comments"."commentable_id" = 76 AND "comments"."commentable_type" = 'Post' AND (('2013-03-07 06:08:09.045488' - comments.created_at) <= 86400) ORDER BY created_at DESC

然而,这并没有给我任何东西,即使 p.comments

[#<Comment id: 132, title: "", comment: "comment", commentable_id: 76, commentable_type: "Post", user_id: 1, created_at: "2013-03-07 05:43:37", updated_at: "2013-03-07 05:43:37">]

这是为什么?

4

3 回答 3

3

比较日期可能比用 created_at 减去当前日期更有意义

p.comments.where("comments.created_at > ?", 1.day.ago)
于 2013-03-07T06:22:56.210 回答
2
p.comments.where(:created_at => 1.day.ago..Time.now)

这将对您有所帮助。它将获取这些时间之间的所有评论。

于 2013-03-07T06:28:57.290 回答
1

尝试这个,

 p.comments.where("(created_at >= :t1) and (created_at < :t2)" , t1: (Time.now - 1.day).beginning_of_day, t2: (Time.now - 1.day).end_of_day)
于 2013-03-07T06:30:44.970 回答