Golang Gorm: Is it possible to delete a record via a many2many relationship?
<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>