我想知道如何为多对多关系添加额外的属性。我有两种模式,共享多对多的关系,公司和职业。
许多专业人士可能属于公司
所以我的公司模型看起来像下面
class Company < ActiveRecord::Base
has_and_belongs_to_many :professions
end
同一行业的同一个人也可能属于多家公司所以
class Profession < ActiveRecord::Base
has_and_belongs_to_many :companies
end
现在我需要关联一个小时费率,对于同一职业的每个公司来说,这个费率可能不同。我不太确定在哪里介绍时薪物业?即使我要将其添加到加入表中,我如何使用活动记录访问该速率?
这是一个典型的场景,您可以通过habtm选择has_many。通常,如果您只需要关联两个模型,而不需要在关联中存储其他信息,请使用habtm。在大多数情况下,必须使用has_many through。您的案件属于这种情况。
您希望将小时费率保存在关联Profession
和Company
的表中。如果你有想要迁移的现有数据,你可能想看看这篇文章如何通过?将has_and_belongs_to_many迁移到has_many?。如果可以删除用于habtm关联的联接表,只需删除它并创建一个新表即可。