cursame / cursame-rails

nueva versión de cursame mas fuerte mas bonita mas poderosa
4 stars 0 forks source link

Al borrar un usuario no borra sus comentarios #356

Open emilianork opened 9 years ago

isaacpompa commented 9 years ago

@emilianork te refieres a que no los borra de la base de datos?

emilianork commented 9 years ago

@isaacpompa Así es, no borra las comentarios de los usuarios cuando este se borra. Eso pasa por lo siguiente. Usamos la gema act_as_commentable en ella cuando haces user.comments en lugar de traer los comentarios que hizo el usuario, trae los comentarios que le hicieron al usuario, haciendo que el dependent: :destroy no sirva.

isaacpompa commented 9 years ago

Entiendo que (https://github.com/jackdempsey/acts_as_commentable) es la gema que se está utilizando para manejar el polimorfismo en el modelos Comment ?

emilianork commented 9 years ago

Así es, no podemos quitar la gema del modelo, hay que buscar una solución. Por ejemplo yo me di cuenta que si primero ponemos has_many comments, :dependent :destroy antes de act_as_commentable el error no pasa, pero habría que hacer tests que comprueben si no rompen nada. @babasbot comentaba el viernes que tal vez ya no valga la pena resolver este tipo de cosas por que se va a reescribir la plataforma. Creo que lo mejor es quitar la posibilidad de borrar usuarios del managers, por que deja muchas cosas inconsistentes. @babasbot que opinas?

isaacpompa commented 9 years ago

En respuesta a tu comentario @emilianork. En todos los modelos (Network, User, Course) está primero has_many comments, :dependent :destroy y después está act_as_commentable.

Me doy cuenta que cuando uno pregunta por los comentarios de un usuario @user.comments lanza este query SELECT "comments".* FROM "comments" WHERE "comments"."commentable_id" = 20 AND "comments"."commentable_type" = 'User' ORDER BY created_at ASC Cuando debería ser: SELECT "comments".* FROM "comments" WHERE "comments"."commentable_id" = 20 Sin la condición después del AND

isaacpompa commented 9 years ago

@emilianork y también pasaría este mismo issue para cuando una red es eliminada. Sólo aquellos comentarios que tengan commentable_type = Network se eliminarían de la tabla Comments.

emilianork commented 9 years ago

Tienes razón @isaacpompa, seguro de eso no nos hemos dado cuenta por el hecho de que los comentarios de una red borrada no aparecen en otra red. Haz revisado si este problema surge en otros modelos?

isaacpompa commented 9 years ago

@emilianork por ahora sólo me he dado cuenta en el modelo de Networks