3

我的 rails 应用程序中有一个产品模型,产品表中有一个类别列,用逗号分隔。我想创建一个连接表(product_categories),以便类别不再以逗号分隔(使其更容易计数等)。我计划在产品表上按 id 加入,并在加入表上有 id、product_id 和类别。

运行迁移以创建连接表是最佳实践,还是应该生成模型然后运行迁移以创建连接表?

我正在运行rails 3.1.0。

4

1 回答 1

2

任何一种方法都可以工作;这基本上是 has_many :through 和 has_and_belongs_to_many 之间的区别

如果您需要将连接本身作为模型进行交互(例如,对其进行验证、添加其他元数据等),那么您应该为连接生成一个模型,并将关系定义为 has_many :through。

但是,在您的情况下,您似乎不需要添加有关给定产品类别连接的额外信息,因此为连接表创建迁移并使用 has_and_belongs_to_many 关系可能更有意义。

于 2012-06-19T20:48:26.827 回答