Rails - 你将如何建立这种HABTM关系

时间:2011-02-17 06:02:06

标签: ruby-on-rails ruby-on-rails-3 foreign-key-relationship has-and-belongs-to-many

我的情况Project可能有很多Tags(反之亦然),所以我在两者之间建立了has_and_belongs_to_many关系。

我的问题是:我需要一个能够携带一个当前标签的项目。

选项1

我可以在项目表中添加tag_id吗?如果已经存在`projects_tags'模型,我该如何正确建立关系呢?

选项2

我认为让projects_tags模型带有一个布尔current字段是没有效果的,因为在实践中需要额外的查询才能找到正确的关系。我把它扔出去作为我考虑过的替代方案。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

class Project < ActiveRecord::Base
  belongs_to :current_tag, :class_name => Tag
end

然后在current_tag_id表中添加projects

您无法将current添加到projects_tags,因为它在技术上不是模型:它只是一个连接表。您必须合并另一个模型并使用has_many :through这样做。