通过联想有很多

has_many :through 关联通常用于与另一个模型建立 many-to-many 连接。该关联表明通过继续第三模型,声明模型可以与另一模型的零个或多个实例匹配。

例如,考虑患者预约看医生的医疗实践。相关的协会声明可能如下所示:

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

class Appointment < ApplicationRecord
  belongs_to :physician
  belongs_to :patient
end

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