我正在为一个购物网站开发一个创建特价商品的功能.一种产品可以有不止一种特殊产品,很明显,一种特殊产品可以有不止一种产品..
我使用has_and_belongs_to_many
人的关系,所以我声明:
产品rb
has_and_belongs_to_many :specials
特殊的rb
has_and belongs_to_many :products
现在,有了一个产品@product
和一个特殊的@special
,一个关联就这样建立了..
@special.products << @product
这样做之后,以下是正确的:
@special.products.first == @product
and, importantly:
@product.specials.first == @special
当我用这个删除关联时
@special.products.delete(@product)
然后@product
从特价中删除,所以@special.products.first==nil
,然而@product
still contains @special
,换句话说@products.specials.first==@special
除了编写一个delete方法,还有什么合适的方法可以在一次调用中实现这一点吗?