Rails 5:" belongs_to through"那种联想

时间:2017-01-01 18:18:44

标签: ruby-on-rails ruby activerecord ruby-on-rails-5

祝大家新年快乐!

我有经典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表预计会非常大。所以我最初的想法是不要创建额外的列,这些列将被重复多次。

1 个答案:

答案 0 :(得分:0)

您可以在您的约会模型类中添加has_many或has_many。

请注意,具有外键的表 belongs_to 关联始终。因此,如果你对你的建模是正确的,你应该在例子表上有一个appointment_id。

使用关联表与另一个关系是没有问题的。实际上,使用中间表的想法是能够在其上存储其他信息(否则你将做HABTM)。