Rails4 ActiveRecordでorを使用する簡単な方法
以前、ActiveRecordでorを使用する方法を見つけましたが、もっと簡単な方法がありました。
Rails4 ActiveRecordでorを使用する - ayaketanのプログラミング勉強日記
ユーザーが所属を3つ持つことができるとします。
ある所属に属するユーザーを抽出するには、下記のように記載します。
department1_id = User.arel_table[:department1_id] department2_id = User.arel_table[:department2_id] department3_id = User.arel_table[:department3_id] User.where(department1_id.eq(department_id).or(department2_id.eq(department_id)).or(department3_id.eq(department_id)))
スコープにする場合、下記のように記載します。
scope :department_is, ->(department_id) { department1_id = User.arel_table[:department1_id] department2_id = User.arel_table[:department2_id] department3_id = User.arel_table[:department3_id] where(department1_id.eq(department_id).or(department2_id.eq(department_id)).or(department3_id.eq(department_id))) }