0

Rails 3アプリケーションに取り組んでおり、いくつかのテスト結果を次の形式で表示する必要があります。

TestLower     TestResult    TestUpper
1.1           1.5           2.0

私がやりたいのは、値が下限と上限の範囲内にある場合は結果に1つのcssクラスを与え、値が範囲外の場合は別のcssクラスを与えることです。

以前にifおよびunlessステートメントを使用しましたが、1つの値を相互に比較するのではなく、1つの値を他の2つの値と比較する必要があるため、これは少し複雑です。

私がそれを行うことを考えることができる唯一の方法は、かなりの数のifステートメントとフォールバックを含むでしょう。'if @ lab.TestResult> @ lab.TestLower'のように、TestUpperよりも低いことを確認する同じものをもう1つ用意します。

これを行う簡単な方法はありますか?たぶん、何らかの形のRailsナンバーヘルパーですか?

どんな助けでもいただければ幸いです!

4

2 に答える 2

5

Rubyにもありますbetween?

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

content_tagこれをrailsのヘルパーと組み合わせて使用​​できます。

content_tag(:span, value, :class => value.between?(lower, higher) ? "between" : "not-between")
于 2012-04-26T09:37:36.650 に答える
2

同じif条件で両方のチェックを実行できます。

lower, upper, value = ...
if value > lower and value < upper
  puts "In range"
else
  puts "Out of range"
end
于 2012-04-26T09:27:43.163 に答える