HABTM seguimiento / seguidor mongoide

Mongoid se envía con .push en un habtm, que establece una relación de habtm en ambas direcciones. Aunque eliminar eliminará un registro asociado, no hay una forma documentada de eliminar solo una relación que he visto. ¿Hay una mejor manera de hacer esto?

Existe una mejor manera de garantizar la unicidad?

has_and_belongs_to_many :following, {class_name: 'User', inverse_of: :followers, inverse_class_name: 'User'}
  has_and_belongs_to_many :followers, {class_name: 'User', inverse_of: :following, inverse_class_name: 'User'}

  def follow!(user)
    self.following.push(user) # this pushes the inverse as well
    self.following_ids.uniq!
    self.save!
    user.follower_ids.uniq!
    user.save!
  end

  def unfollow!(user)
    self.following.delete(user.id)
    self.save!
    user.followers.delete(self.id)
    user.save!
  end

Respuestas a la pregunta(2)

Su respuesta a la pregunta