我想从一天开始选择帖子。什么是正确的方法?这个错误:
date = '3/11/2016'.to_date
User.joins(:posts).where(posts: {'created_at >= ? AND created_at <= ?', date.beginning_of_day, date.end_of_day})
答案 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)