title: Golang Gorm: Is it possible to delete a record via a many2many relationship?
body: <p>I have a many2many structure similar to GORM's example:</p>
  
  <pre><code>// User has and belongs to many languages, use `user_languages` as join table
  type User struct {
      gorm.Model
      Languages         []Language `gorm:"many2many:user_languages;"`
  }
  
  type Language struct {
      gorm.Model
      Name string
  }
  
  db.Model(&amp;user).Related(&amp;languages)
  </code></pre>
  
  <p>Let's say I create a user and it has two associated languages. </p>
  
  <p>I fetch a user record from the database and remove one language from the user's Languages array. I then save the user with gorm:save_associations set to true.</p>
  
  <p>I would expect GORM to delete the record associating the user to this language (in the association table that GORM manages). However, it is not deleted. Is this expected?</p>
  
  <p>Is it possible to delete many2many association records by removing a language from the Languages list on the user record and then saving the user? If not, how should this be done in GORM? </p>
  
  <p><strong>Update</strong></p>
  
  <p>I found a solution to this question, but not sure it's the best way to do this. I store the current languages, clear all the associations, then add back the languages, then save.</p>
  
  <pre><code>languages := user.Languages
  DB.Model(&amp;user).Association("Languages").Clear()
  user.Languages = languages
  </code></pre>