кладет не печатает вещи на консоль - PullRequest
21 голосов
/ 15 апреля 2011

Я использую POW для разработки локальных рельсов. я не знаю почему, но я не могу напечатать или , чтобы поместить информацию в мой файл development.log. Я хочу поместить содержимое переменных в консоль / журнал с моего контроллера. любой совет?

Я читаю свои журналы с tail -f logs/development.log

спасибо!

Ответы [ 4 ]

41 голосов
/ 15 апреля 2011

Вместо puts, попробуйте logger.info(). Регистрация в Rails очень гибкая, но это означает, что иногда вы не сможете использовать самые простые инструменты.

9 голосов
/ 08 ноября 2012

Если вы выполняете отладку и хотите видеть только некоторые сообщения в журналах, вы можете сделать следующее:

Rails.logger.debug("debug::" + person.name)

и

$ pow logs | grep debug::

теперь вы увидите тольковедение журнала сообщений, начинающихся с debug ::

1 голос
/ 04 ноября 2014

Другой вариант - использовать регистратор меток рельсов, http://api.rubyonrails.org/classes/ActiveSupport/TaggedLogging.html.

logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
logger.tagged('BCX') { logger.info 'Stuff' }                            # Logs "[BCX] Stuff"

$ pow logs | grep BCX
0 голосов
/ 17 мая 2018

Для тех, кто все еще не может заставить его работать, помните, что Ruby не использует точки с запятой.Они используются только для цепочек команд .Я добавил их в конце из-за мышечной памяти (пришедшей из PHP), поэтому консоль ruby ​​подумала, что я все еще ввожу команды:

irb(main):001:0> puts "hi";
irb(main):002:0* puts "hi"
hi
hi
=> nil

Надеюсь, это кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...