2011-07-06 5 views
43

누군가가 Ruby for variable에서 스위치 케이스를 사용하는 방법에 대한 예제를 제공 할 수 있습니까?Ruby on Rails 스위치

답변

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 

편집 어쩌면 모두가 알고하지만 매우 유용 할 수 있습니다 것은 당신이 경우 문으로 정규 표현식을 사용할 수 있다는 것입니다

뭔가.

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