I have a pretty simple HABTM set of models
class Tag < ActiveRecord::Base has_and_belongs_to_many :posts end class Post < ActiveRecord::Base
To me work
override << method in the relation
has_and_belongs_to_many :groups do def << (group) group -= self if group.respond_to?(:to_a) super group unless include?(group) end end