我的rails应用程序中有一个产品型号,而产品表中有一个类别列,以逗号分隔。我想创建一个连接表(product_categories),以便类别不再以逗号分隔(使其更容易计算等)。我正计划通过产品表上的id加入,并在连接表上有id,product_id和类别。
最佳做法是运行迁移以创建连接表,还是应该生成模型然后运行迁移以创建连接表?
我正在运行rails 3.1.0。
答案 0 :(得分:2)
任何一种方法都可行;这基本上是the difference between has_many :through and has_and_belongs_to_many。
如果您需要与连接本身作为模型进行交互(例如,在其上放置验证,添加其他元数据等),那么您应该为连接生成模型,并将关系定义为has_many:through。
但是,在您的情况下,您似乎不太可能需要添加有关给定产品类别连接的额外信息,因此仅为连接表创建迁移并使用has_and_belongs_to_many relation。