Rails4 ActiveRecordでorを使用する

whereでORを使用したので、メモ。

Userにclass1_id、class2_id、class3_idがあり、そこにはClassのidを登録するものとする。
class1_id、class2_id、class3_idのどれかが1であるユーザーを探したい。

class1 = User.where(:class1_id => 1)
class2 = User.where(:class2_id => 1)
class3 = User.where(:class3_id => 1)

class1 = class1.where_values.reduce(:and)
class2 = class2.where_values.reduce(:and)
class3 = class3.where_values.reduce(:and)

@users = User.where(class1.or(class2).or(class3))


参考:
sql - ActiveRecord Arel OR condition - Stack Overflow