Ruby on Rails ActiveRecord Associations The has_one :through association


A has_one :through association sets up a one-to-one connection with another model. This association indicates that the declaring model can be matched with one instance of another model by proceeding through a third model.

For example, if each supplier has one account, and each account is associated with one account history, then the supplier model could look like this:

class Supplier < ApplicationRecord
  has_one :account
  has_one :account_history, through: :account

class Account < ApplicationRecord
  belongs_to :supplier
  has_one :account_history

class AccountHistory < ApplicationRecord
  belongs_to :account