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

86

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

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

dsp_099
источник

Ответы:

112

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

big_result(input); 0
aef
источник
3
это собственно то, что я хотел.
dsp_099 08
4
Я часто так делаюbig_result(input); nil
nroose
102

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

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

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc
Lulalala
источник
Что бы вы сделали, если бы хотели, чтобы это всегда было по умолчанию?
Питер Берг,
@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