Has Many Through Association Rails

BharteeTechRubyOnRails
1 min readFeb 7, 2023

--

Defination:

The has_many :through association in Rails is used to set up a many-to-many relationship between two models through a third model. This association is often used when you need to store additional information about the relationship between two models that can't be represented by just a simple has_many or belongs_to relationship.

Example:

Here’s an example of how you might use the has_many :through association in Rails:

class Doctor < ApplicationRecord
has_many :appointments
has_many :patients, through: :appointments
end

class Appointment < ApplicationRecord
belongs_to :doctor
belongs_to :patient
end

class Patient < ApplicationRecord
has_many :appointments
has_many :doctors, through: :appointments
end

In this example, the Doctor model has_many appointments through the Appointment model, and the Patient model has_many appointments as well. This means that you can retrieve all the appointments for a doctor using Doctor#appointments, and all the appointments for a patient using Patient#appointments. Additionally, you can retrieve all the patients for a doctor using Doctor#patients, and all the doctors for a patient using Patient#doctors.

The has_many :through association is useful when you need to store additional information about the relationship between two models, such as the date and time of an appointment. With this association, you can easily access this information through the intermediate model, the Appointment model.

For example, you might retrieve all the appointments for a doctor for a particular date range:

Doctor.first.appointments.where(appointment_date:Date.today..1.week.from_now)

--

--

BharteeTechRubyOnRails
BharteeTechRubyOnRails

Written by BharteeTechRubyOnRails

Ruby on Rails Developer || React Js || Rspec || Node Js

No responses yet