检查一个值是否在Rails 3的范围内?

时间:2012-04-26 09:20:10

标签: ruby-on-rails-3 if-statement range

我正在开发Rails 3应用程序,需要以下列格式显示一些测试结果:

TestLower     TestResult    TestUpper
1.1           1.5           2.0

我想做的是,如果值在下限和上限之内,则给结果一个css类,如果值超出范围,则给它一个不同的css类。

我之前使用过if和unless语句,但这有点复杂,因为我需要将一个值与另外两个值进行比较,而不是将一个值与另一个值进行比较。

我能想到的唯一方法就是涉及很多if语句和后备。例如'if @ lab.TestResult> @ lab.TestLower'然后让另一个检查它低于TestUpper。

有一种简单的方法吗?也许某种形式的rails编号助手?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:5)

Ruby也有between?

if (value.between?(lower, higher)) 
   ...

您可以将它与rails中的content_tag帮助器结合使用:

content_tag(:span, value, :class => value.between?(lower, higher) ? "between" : "not-between")

答案 1 :(得分:2)

你可以在同一条件下进行两项检查:

lower, upper, value = ...
if value > lower and value < upper
  puts "In range"
else
  puts "Out of range"
end