Work with Associations in Queries

Learn how to work with associations in queries.

Now that we’ve got some associations defined, let’s put them to work. Go to the music_db project and open up a mix session with iex -S mix. First, grab the record for the album “Kind Of Blue”:

Press + to interact
album = Repo.get_by(Album, title: "Kind Of Blue")

Let’s run it in the following terminal:

Terminal 1
Terminal
Loading...

Our gut tells us that if we want to see the tracks for this album, we’ll do this:

album.tracks

However, this will not achieve the results we want. Instead, we get this:

This is not an error. It’s a placeholder value indicating that this album’s track records have not yet been retrieved from the database.

Lazy loading

We might well wonder why Ecto doesn’t just load the records for us when we ask for them, like some other database ...

Get hands-on with 1400+ tech skills courses.