Ruby / Rails:在运行时确定比较器?

时间:2015-10-19 21:02:42

标签: ruby-on-rails ruby

我正在开发一个Rails项目,该项目对数据库执行查询,然后将结果与用户指定的条件进行比较。这个错误检测过程的内容可以总结如下:

case error_operator
  when '<'
    if results.row_count < desired_row_count
      then # do error-related stuff 
      else # do other stuff
    end
  when '<='
    if results.row_count <= desired_row_count
      then # do error-related stuff 
      else # do other stuff
    end
  when '>'
    if results.row_count > desired_row_count
      then # do error-related stuff 
      else # do other stuff
    end
  when '>='
    if results.row_count >= desired_row_count
      then # do error-related stuff 
      else # do other stuff
    end
  when '!='
    if results.row_count != desired_row_count
      then # do error-related stuff 
      else # do other stuff
    end
  when '=='
    if results.row_count == desired_row_count
      then # do error-related stuff 
      else # do other stuff
    end
  end

error_operator变量作为字符串存储在Rails中作为任务对象的属性,因此每个任务可能具有不同的比较器。有没有办法让Ruby识别出一个给定的字符串可以被解析为比较器?如果这是一个选项,我也可以不同地为给定任务存储比较器。我没有写原始代码,所以我没有嫁给它。

谢谢!

0 个答案:

没有答案