railsのActiveRecordで、OO以外の人を検索する方法

仕様

usersテーブル

postsテーブル (投稿)

  • user_id
  • created_at

問題

「6/12日に投稿していないユーザー一覧」を取得したいです。

私は初めに以下のように考えました。
User.joins(:posts).merge(Post.where.not(created_at: "2022-6-12".to_date.all_day)).distinct

しかし上記は以下のような問題があります。
あるユーザーが、6/12と6/11日に投稿している場合、「6/12日に投稿していないユーザー一覧」に含まれてはいけませんが、上記のコードだと含まれてしまいます。

またもうひとつ問題があります、postが0件のユーザーは「6/12日に投稿していないユーザー一覧」に含まれないといけないの、上記のコードだと含まれないんですね。

質問

「6/12日に投稿していないユーザー一覧」を取得する手段を教えていただけますでしょうか?

コメントを投稿

0 コメント