레이크 작업에서 "gets"를 어떻게 사용합니까?


80

레이크 작업 내에서 함수를 사용하려고 할 때마다 오류가 발생합니다. 작동하도록하는 방법이 있습니까?

오류는 "해당 파일 또는 디렉토리 없음-(레이크 작업 이름)"


오류 메시지는 자명 한 것 같습니다 ...
Mitch Wheat

6
그렇게 보일 수도 있지만 그렇지 않습니다. 아래 내 대답을 참조하십시오. Kernel # gets와 STDIN.gets의 차이점에 대해 약간의 혼란이 있습니다.
James A. Rosen

답변:


158

문제는 Kernel#gets(단지 단독으로 사용하는 경우 호출 gets하는 것입니다) Rake에 전달 된 인수로 명명 된 파일에서 가져 온다고 가정한다는 것입니다. 즉 gets, 거의 확실하게 존재하지 않는 [rake-task-here]라는 파일의 내용을 반환하려고합니다.

시도해보십시오 STDIN.gets.


3
Small nit picking : $stdin아마도 STDIN여기에서 선호 될 것입니다 . stackoverflow.com/a/4279689/968531
NobodysNightmare

-4

rake 작업에서 get을 사용해야한다고 생각하지 않습니다. 명령 줄에서 입력을 받아야하는 경우 매개 변수로 전달해야하지만 작동하지 않는 코드를 게시하면 확실합니다. 더 나은 답변을 얻을 수 있습니다.


21
일반적으로 명령 줄 인수 더 나은 옵션이지만 레이크 작업 내에서 가져 오기를 사용하는 데는 많은 이유가 있습니다. 그들 중 대부분은 당신이 rake에게시키는 일을 정말로하고 싶어한다는 인증이나 확인과 관련이 있습니다. ( "프로덕션 코드 배포")
James A. Rosen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.