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.


Recent posts View all

Productivity

5 Optimization Tools Every Business Should Be Using in 2023

Here are five different types performance optimization tools you should consider using

Web Dev

Using CSV files with Postgres on Heroku

How we can use CSV files to import and export data to Postgres databases hosted on Heroku.