ruby on rails-如何使用Active Record执行条件where子句



如何执行条件where子句?我有一个运行查询的rake任务。假设我正在构建这样的查询:

residentials = Residential.where(:is_active => true)

现在,如果我将某个参数传递给rake任务,我想添加到where子句中。我在想这样的事情:

residentials.where(:something_else => true) if param_was_passed

但这只是取代了现有的where条款。如何将其添加到现有的where子句中?

可以链接where语句

residentials = Residential.where(:is_active => true)
residentials = residentials.where(:other_thing => true) if param_was_passed

这应该行得通。

请确保这不是函数调用中的最后一行;在这种情况下,重复residentials变量作为最后一行。(根据@digug69评论)

您可以构建哈希,然后将其提供给.where方法。类似于:

h = { }
h[:is_active] = true
h[:field_x] = true if param_was_passed
residentials = Residential.where(h)

相关内容

  • 没有找到相关文章

最新更新