我有经典has_many through association:
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
但是现在我需要将has_many
的{{1}}关联添加到class Appointment
,class Example
与另一个模型关联,并且与belongs_to
belongs_to
关联。
如果可能的话,如何设置这种联合?谢谢。
更新
我不明白,为什么这个问题被贬低了。
以下是class Example
中我需要的内容:
class Example
更新2
好的,我发现我可以使用this answer的解决方案。基本上我可以放弃&#34;约会&#34;模型,并class Example < ApplicationRecord
belongs_to :appointment
belongs_to :model_bbb
end
像这样:
class Example
然后在医生和患者中,我可以class Example < ApplicationRecord
belongs_to :physician
belongs_to :patient
belongs_to :model_bbb
end
和另一个has_many :examples
关系。我确实想要做一些奇怪的through
事情,因为我可以拥有相对较小的belongs_to through
表,但class Appointment
表预计会非常大。所以我最初的想法是不要创建额外的列,这些列将被重复多次。
答案 0 :(得分:0)
您可以在您的约会模型类中添加has_many或has_many。
请注意,具有外键的表 belongs_to 关联始终。因此,如果你对你的建模是正确的,你应该在例子表上有一个appointment_id。
使用关联表与另一个关系是没有问题的。实际上,使用中间表的想法是能够在其上存储其他信息(否则你将做HABTM)。