从一天中选择帖子

时间:2016-11-03 14:22:51

标签: sql ruby-on-rails ruby ruby-on-rails-4

我想从一天开始选择帖子。什么是正确的方法?这个错误:

date = '3/11/2016'.to_date

User.joins(:posts).where(posts: {'created_at >= ? AND created_at <= ?', date.beginning_of_day, date.end_of_day})

3 个答案:

答案 0 :(得分:1)

Posts.where('created_at >= ? and created_at <= ?', Date.today.at_beginning_of_month, Date.today)

除非您想要用户,否则无需加入用户

User.joins(:posts).all.where('posts.created_at >= ? and posts.created_at <= ?', Date.today.at_beginning_of_month, Date.today).preload(:posts)

preload将有助于提高效率

答案 1 :(得分:0)

如果您只是想在白天选择,可以尝试这样的事情。

User.joins(:posts).where(posts: { 'extract(day from created_at) = ?', desired_day_of_month } )

答案 2 :(得分:0)

语法有问题:

posts: {'created_at >= ? AND created_at <= ?', date.beginning_of_day, date.end_of_day}

应该使用哈希语法将列发送到查询,例如:

posts: { title: 'some title' }, etc

在你的情况下,你应该这样做:

User.joins(:posts).where('posts.created_at >= ? AND posts.created_at <= ?', date.beginning_of_day, date.end_of_day)