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