Rails 3.2 CRUD:.with'或'有条件的

时间:2012-10-13 15:34:12

标签: ruby ruby-on-rails-3

在轨道上使用ruby,我想做类似的事情:

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

最有效/干净的方法是什么?

1 个答案:

答案 0 :(得分: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))
)