Запретить консоль рельсов распечатать объект в конце цикла


86

Если я, скажем, перебрал все экземпляры данной модели и выведу что-то из каждого, в конце irb все равно распечатает весь объект.

Если объект занимает сотни строк, мне придется пройти очень много времени, прежде чем я увижу то, что действительно искал. Есть ли способ отключить это в консоли рельсов?

Ответы:


112

Если вы не хотите отключать эхо в целом, вы также можете вызвать несколько выражений в одной командной строке. Будет отображаться только результат последнего выражения.

big_result(input); 0

3
это собственно то, что я хотел.
dsp_099 08

4
Я часто так делаюbig_result(input); nil
nroose

102

Позвоните, conf.echo = falseи он не распечатает возвращаемое значение. Это работает для любого сеанса irb, а не только для консоли Rails.

Если вы хотите сделать его постоянным, добавьте его в конфигурацию irb.

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

Что бы вы сделали, если бы хотели, чтобы это всегда было по умолчанию?
Питер Берг,

@Accipheran Я думаю, что включение его в инициализаторы Rails сработает.
lulalala

Спасибо за ответ, я на самом деле обнаружил, что об этом IRB.conf[:ECHO] = falseпозаботился простой бросок строки в моем файле .irbrc. Это, конечно, также выключает эхо во всех моих сеансах irb, но меня это устраивает.
Питер Берг

41

Чтобы временно остановить печать возвращаемых значений консолью, вы можете выпустить nilинструкцию в конце цикла или функции, но до нажатия клавиши возврата.

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

Или это также может быть число, если вы хотите уменьшить количество набора текста. Но это может сбивать с толку в сценариях, о которых я не могу думать.

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

Ты самый лучший!
Sickrandir
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.