Ruby on Rails - 需要多对多关系吗?

时间:2014-04-21 08:04:45

标签: ruby-on-rails ruby-on-rails-4 many-to-many

我对Ruby on Rails很陌生,我只完成了Michael Hart railstutorial.org,现在我的教程是我新项目的基础,我正在从事简单的电子处方服务。 我感到非常困惑的是RoR中的多对多关系,避免它们会很好,但我不确定这是否可能具有我需要的功能。

这是我的基本EER与关系表,将处方与应包括的药物联系起来。

enter image description here

我非常感谢有关如何简化这一点的任何想法,或者它实际上并不难实现?

1 个答案:

答案 0 :(得分:1)

不要避免many-to-many关联,只关于使用连接模型

您可以使用has_many :through

enter image description here

你只需要这样做:

#app/models/prescription.rb
Class Prescription < ActiveRecord::Base
    has_many :relations
    has_many :medicines, through: :relations
end

#app/models/relation.rb
Class Relation < ActiveRecord::Base
    belongs_to :prescription
    belongs_to :medicine
end

#app/models/medicine.rb
Class Medicine < ActiveRecord::Base
    has_many :relations
    has_many :prescriptions, through: :relations
end