33

I have this (Contract and Accessory are associated with has_and_belongs_to_many):

# Get the contract and specific accessory based on params
@contract  = Contract.find(params[:id])
@accessory = @contract.accessories.find(params[:accessory_id])

Now, I'm wanting to remove that specific accessory from @contract. I don't want to delete the record from the DB, but simply want to remove the association between the two.

What's the railsy way of doing this?

Thanks!

Wes Foster
  • 8,770
  • 5
  • 42
  • 62

1 Answers1

65

How about this:

@contract.accessories.delete(@accessory)

See also: How do I remove a single HABTM associated item without deleting the item itself?

Community
  • 1
  • 1
Chris Salzberg
  • 27,099
  • 4
  • 75
  • 82
  • Yup, that simple! I noticed the question you had referred me to, but the way they explained it was strange. Thanks though! – Wes Foster Aug 19 '12 at 03:22