Консоль Rails не выводит SQL-выражения в мой журнал разработки
Когда я обращаюсь к моему серверу Webrick через localhost, или когда я запускаю рельсовые миграции, мой файл development.log правильно написан. Однако, когда я загружаю консоль rails с помощью "rails c", а затем пытаюсь создать новый объект базы данных и сохранить его с помощью команды "user.save", я вижу SQL-запросы в консоли, но ничего не записывается в журнала разработки.
Большинство людей, отвечая на вопрос, похожий на это, говорят "проверьте, чтобы в настройке была настроена правильная среда". Я сделал это и могу сказать, что в моей системе это происходит для совершенно нового приложения для рельсов.
Любая помощь будет оценена по достоинству. Спасибо!
Ответы
Ответ 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/