【发布时间】:2015-08-25 23:36:11
【问题描述】:
使用 ActiveRecord,您可以像这样构建查询:
query = MyModel.where(value_one: true)
if (condition)
query.where(value_two: true)
else
query
end
但是,当有多个条件时,我遇到了问题:
query = MyModel.where(value_one: true)
query.where(value_two: true) if condition_two
query.where(value_three: true) if condition_three
query
在这种情况下,它只会检查value_one 是否为真。有趣的是,如果我:
query = MyModel.where(value_one: true)
query.where(value_two: true)
query.where(value_three: true)
然后它会检查value_one 和value_three 是否为真,而不是value_two。任何人都明白这是为什么以及如何让查询子句正确地建立在彼此之上?
【问题讨论】:
标签: ruby-on-rails activerecord