可以向可链接查询添加选项吗?

Possible to add options to a chainable query?

我正在将 Rails 3.2 应用程序升级到 Rails 4 方法,因此之前的程序员在纯 sql 语句中使用 options 构建了一个查询,如下所示:

:conditions => 'a_table.an_attribute is NULL' + options

options更纯sql进一步细化

因此,当我将其转换为更新的方法时,我似乎无法获得正确的语法以使 options 像这样正常工作:

self.joins(:tables1, :tables2).where(:something => :something_else).options

options 将使用 if 语句进行设置。

if true
   options = where(:attribute1 => :an_attribute)
else
   options = where(:attribute2 => :a_differant_attribute)
end

这是可行的还是我需要用不同的方法构建单独的完整查询?

谢谢。

您可以像这样以编程方式建立条件:

scope = joins(:tables1, :tables2).where(:something => :something_else)

if expression
  scope = scope.where(:attribute1 => :an_attribute)
else
  scope = scope.where(:attribute2 => :a_differant_attribute)
end