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

Ruby on rails 如何将条件保存在变量中并在rails活动记录中使用该变量?,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 3.1,我试图将条件保存在一个变量中,并在活动记录查询中调用它,如下所示 if !key1.nil? @condition = ":key2 => @value2, :key3 => @value3" else @condition = ":key4 => @value4, :key5 => @value5" end @result = Model.where(@condition).all 我该怎么做?请帮帮我 更新: @condition = { "key1

我试图将条件保存在一个变量中,并在活动记录查询中调用它,如下所示

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 }

@condition={“key1=”和key2>=?以及key3使用
散列
而不是
字符串

 @condition =  { :key2 => @value2, :key3 => @value3 }
此外,您还可以使用
简化
if!key1.nil?
的语法,除非

@condition = {}
unless key1
  @condition =  { :key2 => @value2, :key3 => @value3 }
else
  @condition =  { :key4 => @value4, :key5 => @value5 }
end

好的,如果我的条件如更新中所示,它会显示一个错误