2011-07-06 21 views

答えて

90

ケース/ケースを参照すると仮定します。

case a_variable # a_variable is the variable we want to compare 
when 1 #compare to 1 
    puts "it was 1" 
when 2 #compare to 2 
    puts "it was 2" 
else 
    puts "it was something else" 
end 

または

puts case a_variable 
when 1 
    "it was 1" 
when 2 
    "it was 2" 
else 
    "it was something else" 
end 

EDITそうでないかもしれない、誰もが知っているが、どのような非常に便利ですが、あなたがcase文での正規表現を使用することができるということです

何か。

foo = "1Aheppsdf" 

what = case foo 
when /^[0-9]/ 
    "Begins with a number" 
when /^[a-zA-Z]/ 
    "Begins with a letter" 
else 
    "Begins with something else" 
end 
puts "String: #{what}" 
+0

ありがとうございます。 a_variableをparams [:id]に置き換えることはできますか? – glarkou

+0

絶対に、同じタイプの変数を比較していることを確認してください。たとえば、 "1"は1に等しくありません。 "1" .to_iは1です(to_iは文字列を整数に変換します)。 params [:id]と整数を比較する場合は、 "case params [:id] .to_i"を実行する必要があります。 params [:id]を "case"でテストするのはちょっと奇妙に思えますが、あなたは何をしているのですか? –

+0

ありがとうございます。それは本当に役に立ちました。私はそれが問題だと思う! – glarkou