how to I see SQL trace when using (a) rails console & (b) running rspec tests???

Hi,

I’d like to know how to monitor the SQL calls (from ActiveRecord) for both the cases: (a) using rails console [development mode], and (b) running rspec tests [test mode]

How can I do this? For item (a) I recollect previously I could just run up a “./script/server” and see this whilst using “./script/console” however it does not seem to be working currently for me.

Tks

Not sure about (b), but for (a) put this in your ~/.irbrc

# Log to STDOUT if in Rails if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER')    require 'logger'    RAILS_DEFAULT_LOGGER = Logger.new(STDOUT) end

(b) running rspec tests [test mode]

Not sure about (b), but for (a) put this in your ~/.irbrc

For (b), gem install assert_efficient_sql, then put this around your RSpec money-line:

   inspect_sql :verbose => true do       concoct_sql()    end

It will spew out your SQL statements, and their EXPLAIN results, so you can see the bottlenecks.

It only works for MySQL tho...

Also, put in require 'assert_efficient_sql', and this:

Spec::Runner.configure do |c|    c.include Test::Unit::Assertions end