Я разрабатываю функцию для создания специальных продуктов для веб-сайта для покупок. Один продукт может иметь более одного специального, и, очевидно, специальный может иметь более одного продукта.
Я использую связь has_and_belongs_to_many
, поэтому я заявил:
Product.rb
has_and_belongs_to_many :specials
Special.rb
has_and belongs_to_many :products
Теперь, с продуктом @product
и специальным @special
, ассоциация создается так.
@special.products << @product
После этого выполняется следующее:
@special.products.first == @product
и, что важно:
@product.specials.first == @special
Когда я удаляю ассоциацию, используя этот
@special.products.delete(@product)
тогда @product
удаляется из спец., поэтому @special.products.first==nil
, однако @product
все еще содержит @special
, другими словами @[email protected]
Есть ли какой-либо правильный способ, помимо написания метода удаления, сделать это за один вызов?