有一个通过联想

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