这个查询有些奇怪,我无法解决
我有一个帖子模型,其中有很多评论。我想获取过去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">]
为什么?
答案 0 :(得分:3)
比较日期比使用created_at
减去当前日期更有意义p.comments.where("comments.created_at > ?", 1.day.ago)
答案 1 :(得分:2)
p.comments.where(:created_at => 1.day.ago..Time.now)
这会对你有所帮助。它会在这些时间之间获取所有评论。
答案 2 :(得分: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)