Railsで使えるGem

多対多の関係でまだ関連を持っていない候補を探す〜active_record、pluck、not in

投稿日:

前提

PersonとProjectは、ProjectsPersonという中間モデル(テーブル)を介して多対多の関係にある.

やりたいこと

まだProjectに参加していないPersonの一覧を出したい.

解説

not

ActiveRecord4からは、not句が便利に使えるようになった.
guides.rubyonrails.org/active_record_querying.html#not-conditions

in

whereのときに、配列を与えるとin句を発行する.

pluck

pluckは基本的に指定したカラムの配列をあたえてくれるActiveRecordのメソッド
railsdoc.com/references/pluck

組み合わせる

Projcetに含まれているPeopleのidを配列にして、not inでwhereすればOK.

-Railsで使えるGem
-,

執筆者:

関連記事

Rails3.2.8でテーブル並び替えのテストを作る~cucumberと正規表現

前提 Railsのテーブル並び替えを実装する Rails3.2.8で自動テスト環境を整える〜cucumber+spork+guard 目次1 作戦(ストラテジー)2 have_contentの正規表現 …

Mac OSXにHyper EstraierのRuby Bindingをインストールする

By: Kanko* – CC BY 2.0 目次1 環境2 Hyper Estraierのインストール3 ソースのダウンロード4 パッチを適用する5 rvmのためにconfigureファ …

Rails3でajaxでD&Dでまとめてファイルアップロードをスクラッチで~jQueryFileUpload for Rails

参考 Rails3でajaxでD&Dでまとめてファイルアップロード~jQueryFileUpload for Rails Rails3でajaxでD&Dでまとめてファイルアップロード2 …

Rails4とBootstrapをつかった動的なナビゲーションとパンくずリスト〜acts_as_nested_set

By: anko.gaku_ula – CC BY 2.0 目次1 Railscast2 acts_as_nested_set3 ヘッダーnav4 サイドメニュー5 パンくずリスト6 でき …

RailsでECサイトを構築3 日本にあわせる~spree

  前提 RailsでECサイト構築~spree RailsでECサイト構築2 注文してみる~spree 目次1 テンプレートをダウンロード2 テンプレートを改造する3 デフォルトの国を変更 …