DEV Community

loading...
Cover image for Small ruby tips

Small ruby tips

Hugo Lyra
Hi there, I’m Hugo. Software Developer and an apprentice
Originally published at blog.hugolyra.com ・1 min read

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.

Alt Text

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.

Alt Text

Map Shorthand

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

Alt Text

Thanks for reading!

Discussion (0)