2016-11-03 6 views
1

投稿を1日から選択したい正しい方法は何ですか?このエラー:1日から投稿を選択

date = '3/11/2016'.to_date 

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

どのようなエラーを与えるのでしょうか? –

+0

予期しない '}'、一般的な構文 – user7067399

+0

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

答えて

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

あなたはあなたができるだけでなく、ユーザーが必要な場合を除き、ユーザーに参加する必要はありませんpreloadはあなたが持っている

+0

'preload'は' include'のようなものですか? – Dan

+1

また、効率を考える上で+​​1。 – Dan

0

あなたがこの日のように試してみるとよいでしょう。

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

+0

いいえ、私は1日から必要ですが、完全な日付を使用してください – user7067399

+0

多分これらの行に沿って何か "2016-11-03" .to_date.day' – Dan

0

効率で役立つ

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

この構文の問題:

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) 
関連する問題