有一個通過聯想

has_one :through 關聯與另一個模型建立 one-to-one 連線。該關聯表明通過繼續第三模型,可以將宣告模型與另一模型的一個例項匹配。

例如,如果每個 supplier 都有一個 account,並且每個帳戶都與一個帳戶歷史記錄相關聯,那麼供應商模型可能如下所示:

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

class Account < ApplicationRecord
  belongs_to :supplier
  has_one :account_history
end

class AccountHistory < ApplicationRecord
  belongs_to :account
end