Подтвердить что ты не робот

Консоль Rails не выводит SQL-выражения в мой журнал разработки

Когда я обращаюсь к моему серверу Webrick через localhost, или когда я запускаю рельсовые миграции, мой файл development.log правильно написан. Однако, когда я загружаю консоль rails с помощью "rails c", а затем пытаюсь создать новый объект базы данных и сохранить его с помощью команды "user.save", я вижу SQL-запросы в консоли, но ничего не записывается в журнала разработки.

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

Любая помощь будет оценена по достоинству. Спасибо!

4b9b3361

Ответ 1

консоль rails никогда не записывает в файл журнала, но вы можете добиться ее довольно легко, например, если вы выполните следующее после запуска консоли rails

ActiveRecord::Base.logger = Logger.new STDOUT

rails будет записывать все SQL-инструкции в stdout, отображая их в вашем терминале. и поскольку Logger.new принимает любой поток в качестве первого аргумента, вы можете просто позволить ему писать в rails development.log:

ActiveRecord::Base.logger = Logger.new File.open('log/development.log', 'a')

Ответ 2

Я в Rails 2.3.8, этот ответ на самом деле не работает для меня.

ActiveRecord::Base.logger = Logger.new STDOUT

На самом деле работает следующее:

ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)

Ссылка http://www.shanison.com/2012/03/05/show-sql-statements-in-rails-console/