我正在尝试将条件保存在变量中并在活动记录查询中调用它,如下所示
if !key1.nil?
@condition = ":key2 => @value2, :key3 => @value3"
else
@condition = ":key4 => @value4, :key5 => @value5"
end
@result = Model.where(@condition).all
我该怎么做?请帮助我。
更新:
@condition = { "key1 = ? and key2 >= ? and key3 <= ? and id IN (?)", @value1, @value2, @value3, @id }
使用 hash
而不是 string
:
@condition = { :key2 => @value2, :key3 => @value3 }
此外,您可以使用unless
来简化if !key1.nil?
的语法:
@condition = {}
unless key1
@condition = { :key2 => @value2, :key3 => @value3 }
else
@condition = { :key4 => @value4, :key5 => @value5 }
end