模型关联使用rails3方式

时间:2013-07-25 12:15:11

标签: ruby-on-rails-3

我正在制作协会,

我有三张桌子。

   Product, Category

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

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

每个类别的产品都是有序的(排序)。产品类别的顺序不应重复。

在这种情况下,我使用has_many :categories尝试了产品category has_many :productsthrough :xyz table。但是类别的顺序在最后一次更改时保持不变。

我想在产品和类别之间创建一个关联,然后订购rails 3#

1 个答案:

答案 0 :(得分: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)