【问题标题】:How can i save the conditions in variable and use that variable in rails active record?如何将条件保存在变量中并在 Rails 活动记录中使用该变量?
【发布时间】:2014-01-08 07:28:20
【问题描述】:

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

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 }

【问题讨论】:

  • 尝试“key1 = #{@val1} and key2 >= #{@val2} and key3

标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-3.1


【解决方案1】:

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

【讨论】:

  • 好的,如果假设我的情况如更新中所示,它会显示错误。
猜你喜欢
  • 2020-12-19
  • 2013-08-13
  • 2021-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 1970-01-01
  • 2012-11-19
相关资源
最近更新 更多