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

Web DevMarketing

Getting more out of Plausible

Some things we've done to up our Plausible analytics game

Web Dev

Creating draft posts in Jekyll

How to create and develop with draft posts in Jekyll