这取决于您是否需要连接模型。连接模型允许您针对两个其他模型之间的关联保存额外信息。例如,也许您想记录文章被标记的时间戳。该信息将针对连接模型进行记录。
如果您不想要连接模型,则可以使用简单的has_and_belongs_to_many
关联:
class Article < ActiveRecord::Base
has_and_belongs_to_many :tags
end
class Tag < ActiveRecord::Base
has_and_belongs_to_many :articles
end
使用Tagging
连接模型(比 更好的名称ArticleTag
),它看起来像这样:
class Article < ActiveRecord::Base
has_many :taggings
has_many :tags, :through => :taggings
end
class Tag < ActiveRecord::Base
has_many :taggings
has_many :articles, :through => :taggings
end
class Tagging < ActiveRecord::Base
belongs_to :article
belongs_to :tag
end