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 に答える