0

我正在建立联想,

我有三张桌子。

   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 回答