Perdonad por la pregunta tonta,
pero tengo una tabla de usuarios donde guardo el nombre y una tabla de
amigos del tipo:
create_table :users_friends do |t|
t.column :user_id, :integer
t.column :friend_id, :integer
end
En el modelo user.rb he creado la siguiente relación:
has_and_belongs_to_many :friends,
:class_name => “User”,
:join_table => “users_friends”,
:association_foreign_key => “friend_id”,
:foreign_key => “user_id”#,
:after_add => :be_friendly_to_friend,
:after_remove => :no_more_mr_nice_guy
def be_friendly_to_friend(friend)
friend.friends << self unless friend.friends.include?(self)
end
def no_more_mr_nice_guy(friend)
friend.friends.delete(self) rescue nil
end
Desde consola puedo hacer:
u1 = User.find(1)
u2 = User.find(2)
u1.friends << u2
Y la relación se hace sin problemas…¿pero como puedo eliminar ahora la
relación?; si hago:
u1.friends.find(u2).destroy
En vez de eliminarme la relación, me borra el usuario.
¿Alguna idea por favor? Gracias.