«Имеет и принадлежит многим» позволяет иметь несколько ассоциаций между одними и теми же объектами.Итак, я пытаюсь внедрить корзины покупок, в которых может быть несколько продуктов.
# /app/models/cart.rb
class Cart < ApplicationRecord
has_and_belongs_to_many :products
end
.
# /app/models/product.rb
class Product < ApplicationRecord
has_and_belongs_to_many :carts
end
Однако, когда я пытаюсь удалить один многократномногие ассоциации, он удаляет их все:
@cart = Cart.last
@product = Product.last
3.times { @cart.products << @product }
@cart.products.delete(@product)
puts @cart.products.count
# Returns 0; should be 2
Есть ли способ удалить только одну ассоциацию?