Ответ 1
Поместите это в свои спецификации:
ActiveRecord::Base.logger = Logger.new(STDOUT) if defined?(ActiveRecord::Base)
и вы можете tail -f log/test.log
и посмотреть, что происходит. Либо один, но не оба.
Я пишу спецификацию для своего приложения rails 3. Я хочу проверить, действительно ли работают транзакции db. Было бы очень полезно видеть, как sql-запросы, сгенерированные моим приложением, управляются спецификацией.
Есть ли способ увидеть запросы так же, как в консоли rails?
Я использую Rails 3.0.9, RSpec 2.6 и sqlite (позже перейдем к mysql)
Поместите это в свои спецификации:
ActiveRecord::Base.logger = Logger.new(STDOUT) if defined?(ActiveRecord::Base)
и вы можете tail -f log/test.log
и посмотреть, что происходит. Либо один, но не оба.
Согласно Rails 5 документов (Active Record Explain). Теперь вы можете использовать метод объяснения. Это будет регистрировать только те запросы, которые вы укажете, но вы не будете перегружены, если перед тестами у вас будет большой объем кода SQL.
ap Model.explain