What is a has_many :through association in Ruby on Rails? | Quick Tip

Share this article

In this Treehouse Quick Tip, Jason demystifies the concepts behind what a has many :through association is in Ruby on Rails. We’ll figure out what a join table is, how different models fit together, and the syntax needed to make it all work. Score one for Treehouse!

Free Workshops

Watch one of our expert, full-length teaching videos. Choose from HTML, CSS or WordPress.

Start Learning

Jason Seifer

Jason Seifer is a web developer, podcaster, world traveler, astronaut, and more. He also teaches at Treehouse. You can find him on Twitter @jseifer.


4 comments on “What is a has_many :through association in Ruby on Rails? | Quick Tip

  1. So, do you have any advice for OO actions that work on data stored on the join table? For instance, if you added a field to Subscriptions called “expired” for folks that quit paying their subscription fee, how would you access and/or update the “expired” field?

    Obviously, you can pull the subscription through a call like *sub = Subscription.where(user: user, magazine: magazine)*, but i didn’t know if working directly on the Subscription model is considered the Rails Way of working CRUD on join tables.

  2. This was a great tip but it would be nice to see how to use it with nested attributes in a form and also how to set the strong parameters for it in rails 4.