6

Ruby on Rails では、次のようなことをしたいと考えています。

 @tasks = Task.where(:def => true || :house_id => current_user.house_id)

これを行うための最も効率的/クリーンな方法は何ですか?

4

1 に答える 1

7

あなたはこのようにそれを行うことができます:

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))
)
于 2012-10-13T15:37:05.287 に答える