【问题标题】:How do I define many to many associations and the related properties in Rails (Active record)?如何在 Rails(活动记录)中定义多对多关联和相关属性?
【发布时间】:2013-11-26 15:21:20
【问题描述】:

我想知道如何向多对多关系添加其他属性。 我有两个共享多对多关系的模型,Company 和 Profession。

许多专业人士可能属于一家公司

所以我的公司模型如下所示

class Company < ActiveRecord::Base
  has_and_belongs_to_many :professions
end

同一职业的同一个人也可能属于多家公司 所以

class Profession < ActiveRecord::Base
  has_and_belongs_to_many :companies
end

现在我需要关联一个小时费率,该费率对于同一专业的每家公司可能不同。我不太确定在哪里介绍小时费率属性?即使我要将它添加到加入表中,我如何使用活动记录访问该速率?

【问题讨论】:

  • 您无法通过 HABTM 添加更多属性。检查这个 SO post

标签: ruby-on-rails activerecord many-to-many model-associations


【解决方案1】:

这是一个典型的场景,您通过 over habtm 选择 has_many。通常,如果您只需要关联两个模型,不需要在关联中存储其他信息,请使用 habtm。在大多数情况下,您必须通过使用 has_many。您的案例属于这种情况。

您希望将每小时费率保存在关联ProfessionCompany 的表中。如果您有想要迁移的现有数据,您可能需要查看此帖子How to migrate has_and_belongs_to_many to has_many through?。如果您可以删除用于 habtm 关联的连接表,只需删除它并创建一个新表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多