如何在Rails中生成Join表

时间:2012-06-19 20:35:52

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

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

我正在运行rails 3.1.0。

1 个答案:

答案 0 :(得分:2)

任何一种方法都可行;这基本上是the difference between has_many :through and has_and_belongs_to_many

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

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