2010-07-17 6 views
1

다음과 같이 튜토리얼 질문을위한 간단한 Ruby 코드를 입력했습니다. 그러나Ruby 프로그램 오류 : NoMethodError

#Grandma is deaf! 
puts "Hey Sonny! It's your lovely Grandmother! How are you?" 
response = gets.chomp 
while response != "BYE" 
    if response != response.upcase 
    puts "Huh?! I CAN'T HEAR YOU!" 
    else 
    puts "NO! NOT SINCE " + (1930 + rand(21)).to_s + "!" 
    end 
    response = gets.chomp 
end 
puts "GOOD BYE, SONNY!"  

, 나는이 창 표시를 실행하면 chomp가 인식되지 않는 이유

Hey Sonny! It's your lovely Grandmother! How are you? 
NoMethodError: private method ‘chomp’ called for nil:NilClass 

at top level in deafGrandma.rb at line 3 

이해가 안 돼요. Mac에서 textMate를 사용하고 있는데 Ruby 버전 1.8.7이 있어야합니다. 어떤 해결책?

는 너무 감사 :)

+0

들여 쓰기/서식을 유지하려면 질문을 편집하고 코드를 4 칸 들여 쓰기해야합니다. – Adrian

답변

1

Adrian은 TextMate 1.5.9 (r1510)에서 사용할 수없는 대화 형 입력에 관한 내용입니다. See this post from TextMate's developer.

그러나 대화 형 입력을 복원하는 "최첨단"TextMate 릴리스로 업그레이드 할 수 있으며 위 코드를 올바르게 실행할 수 있습니다. TextMate의 Preferences -> Software Updates으로 가서 Automatically check for updates이 선택되어 있는지 확인하십시오.

Watch For: 드롭 다운 메뉴에서 Cutting-Edge을 선택하십시오. 마지막으로 Check Now을 클릭하십시오. 최신 릴리스 (r1589)가 자동으로 다운로드됩니다. 이 릴리스에서는 대화식 입력이 다시 활성화됩니다.

+0

감사합니다. 지금 작동 중입니다. D : D : D * 활이 느려짐 – Vector

+0

내 대답으로 문제가 해결되면 큰 체크 박스를 클릭하여 답변으로 받아 들여서 스택 오버 플로우를 환영합니다. :) – michaelmichael

0

당신은 당신의 코드를 실행의 TextMate에서 Cmd를-R 바로 가기를 사용하는 경우, 당신은 TextMate를 만 출력을 지원하기 때문에 그것을 입력을 제공 할 수 없습니다. 대신 터미널에서 실행해야합니다. 그 오류가 발생하는 이유는 $stdin이 닫혀 있기 때문에 getsnil을 반환합니다.

+0

도움 주셔서 감사합니다 :)) – Vector