0

私は、

私は3つのテーブルを持っています。

   Product, Category

    p1 ----> c1(1)
    p1 ----> c2(2)
    p1 ----> c3(3)

    p2 ----> c2(1)
    p2 ----> c3(2)
    p3 ----> c4(3)

商品の各カテゴリーが順番に並んでいます。商品カテゴリの順序を繰り返さないでください。

この場合、私は製品has_many :categoriescategory has_many :products使用を試しthrough :xyz tableました。ただし、最後の変更ではカテゴリの順序は同じままです。

製品とカテゴリの関連付けを作成し、レールを 3 通りに注文したい

4

1 に答える 1

0

結合テーブルの名前が であると仮定すると、結合テーブルに列をproduct_categories追加するだけで済みます。sort

has_many through次に、関連付けを次のように設定できます。

has_many :product_categories
has_many :categories, through: :product_categories, order: 'product_categories.sort'

ProductCategory機能する可能性のある別のオプションは、モデルにデフォルトのスコープを追加することです。

default_scope order(:sort)
于 2013-07-25T17:26:34.913 に答える