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;


To better understand what SQL ActiveRecord is generating?

This will return something like;

=> "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\""

puts 'test'.inspect
 => 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.

Recent posts View all


Iterate over indexed params in Rails

When your API isn't Rails-shaped, sometimes you need to handle input differently

Web Dev Jekyll

Running Jekyll from inside VS Code

How to set up your VS Code to run Jekyll without needing extra extensions