레일 콘솔이 루프 끝에서 개체를 인쇄하지 못하도록합니다.


84

예를 들어 주어진 모델의 모든 인스턴스를 반복하고 각각에서 무언가를 출력하면 결국 irb는 여전히 전체 객체를 인쇄합니다.

물체가 수백 줄을 차지하면 내가 실제로 찾고 있던 것을보기까지 먼 길을 갈 것입니다. Rails 콘솔에서 이것을 비활성화하는 방법이 있습니까?

답변:


109

일반적으로 에코를 비활성화하지 않으려면 하나의 명령 줄에서 여러 표현식을 호출 할 수도 있습니다. 마지막 표현식의 출력 만 표시됩니다.

big_result(input); 0

3
이것은 실제로 내가 원했던 것입니다.
dsp_099

3
자주합니다big_result(input); nil
nroose

101

호출 conf.echo = false하면 반환 값이 인쇄되지 않습니다. 이것은 Rails 콘솔뿐만 아니라 모든 irb 세션에서 작동합니다.

영구적으로 만들려면 irb 구성에 추가하십시오.

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc

이것이 항상 기본적으로 적용되도록하려면 어떻게 하시겠습니까?
Peter Berg

@Accipheran Rails 이니셜 라이저에 넣으면 작동 할 것 같습니다.
lulalala

응답 해 주셔서 감사합니다. 실제로 IRB.conf[:ECHO] = false.irbrc 파일에서 줄을 던지는 것만으로도 처리되었음을 알았습니다. 물론 모든 irb 세션에서 에코가 바뀌지 만 괜찮습니다.
Peter Berg

40

콘솔이 반환 값을 인쇄하는 것을 일시적으로 중지하려면 nil루프 또는 함수의 끝에서 반환을 누르기 전에 문을 실행할 수 있습니다 .

record.each do |r|
  puts r.properties
end; nil

또는 입력을 줄이려면 숫자 일 수도 있습니다. 하지만 내가 생각할 수없는 시나리오에서는 혼란 스러울 수 있습니다.

record.each do |r|
  puts r.properties
end; 0

너는 최고야!
sickrandir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.