我正在将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
这是可行的还是我需要在不同的方法中构建单独的完整查询?
感谢。
答案 0 :(得分:0)
您可以通过编程方式建立条件:
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