如何将条件保存在变量中并在轨道活动记录中使用该变量?
问题描述:
我想保存条件的变量,并呼吁,在活动记录查询如下图所示如何将条件保存在变量中并在轨道活动记录中使用该变量?
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 }
答
使用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
尝试“key1 =#{@ val1}和key2> =#{@ val2}和key3 beck03076