Rails / アソシエーションした先のデータを持っていないレコードを検索する

タイトルがすごい分かりづらい。。。

User has_many Blogs
のようになっている時、Blogを持っていないUserを検索したい。

ruby
1
@users = User.includes(:blogs).where( :blogs => { :id => nil } )

  
ちなみにtechというカテゴリーのブログをもつUserを検索するのは、こんな感じ。

ruby
1
@users = User.includes(:blogs).where( :blogs => { :category => 'tech' } )

  
こちらがドンピシャです。
Want to find records with no associated records in Rails 3

includesについてはこちらが参考になりました。
似ているようで全然違う!?Activerecordにおけるincludesとjoinsの振る舞いまとめ - Qiita
  
以上。

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた