Ruby on Rails では、次のようなことをしたいと考えています。
@tasks = Task.where(:def => true || :house_id => current_user.house_id)
これを行うための最も効率的/クリーンな方法は何ですか?
Ruby on Rails では、次のようなことをしたいと考えています。
@tasks = Task.where(:def => true || :house_id => current_user.house_id)
これを行うための最も効率的/クリーンな方法は何ですか?
あなたはこのようにそれを行うことができます:
Task.where("def = ? or house_id = ?", true, current_user.house_id)
一般的なケースは次のとおりです。
Model.where("column = ? or other_column = ?", value, other_value)
Arelを活用することもできます。
t = Task.arel_table
@tasks = Task.where(
t[:def].eq(true).
or(t[:house_id].eq(current_user.house_id))
)