Small ruby tips

Collection of simple ruby tips

N+1 Query

What is a N+1 query? Consider a situation where you have users that each have many friends. If we loop to map the friends, we could write the following map code.

With this first solution every time you access a user’s friends, it goes back to the database to load them, generating an N+1 query.

The ActiveRecord solution is to eagerly load the data and this is accomplished with a simple method includes.

ruby-n1-query.png

Memoization

Memoization is a technique you can use to cache the result of a method that do time-consuming work and can be executed once.

That means that you’ll only make the network call the first time you call memoized_friends, and future calls will just return the value of the instance variable friends.

ruby-memoization.png

Map Shorthand

You can use a shorthand version for map when you’re calling a method that doesn’t need any arguments.

ruby-map-shorthand.jpeg

Thanks for reading!

No Comments Yet