Use to_sql without slashes
Do you hate slashes in your to_sql output? Then this post is for you!
This is such a simple thing, but something that has already improved my quality of life when debugging SQL queries in a Rails console!
Have you ever done something like;
Thing.all.to_sql
To better understand what SQL ActiveRecord is generating?
This will return something like;
Thing.all.to_sql
=> "SELECT \"things\".* FROM \"things\"
I dislike those slashes a lot, they add a lot of visual noise.
If you take the output of to_sql
and add it into puts
, the slashes go away!
puts Thing.all.to_sql
"SELECT "things".* FROM "things"
=> nil
Interestingly, this behaviour is similar to when you inspect a String;
'test'.inspect
=> "\"test\""
puts 'test'.inspect
"test"
=> nil
So, yeah, use puts Blah.something.to_sql
to have more readable output!
If you’re wondering what the => nil
means in the output, puts
will do what it is meant to do (put out a line) and then return nil
, so we’re just seeing the returned value of puts
.