如何将条件保存在变量中并在轨道活动记录中使用该变量?

问题描述:

我想保存条件的变量,并呼吁,在活动记录查询如下图所示如何将条件保存在变量中并在轨道活动记录中使用该变量?

if !key1.nil? 
    @condition = ":key2 => @value2, :key3 => @value3" 
else 
    @condition = ":key4 => @value4, :key5 => @value5" 
end 

@result = Model.where(@condition).all 

我怎样才能做到这一点?请帮帮我。

UPDATE:

@condition = { "key1 = ? and key2 >= ? and key3 <= ? and id IN (?)", @value1, @value2, @value3, @id } 
+0

尝试“key1 =#{@ val1}和key2> =#{@ val2}和key3 beck03076

使用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 
+0

ok如果假设我有我的状况,它显示一个错误。 – logesh