Se ha reemplazado completamente el sistema de votos (upvote/downvote) por un sistema de estrellas más simple y directo.
- ✅ Tabla
votos→estrellas: Renombrada la tabla - ✅ Eliminada columna
tipo: Ya no hay "arriba" o "abajo" - ✅ Agregada columna
vistasen tablapregunta: Para contar visualizaciones - ✅ Eliminada columna
votosde tablacomentarios: Los comentarios ya no tienen votos
- ✅ Modelo Voto → Estrella: Renombrado y simplificado
- ✅ Modelo Preguntum:
- Métodos:
total_estrellas(),tiene_estrella_de?(usuario),incrementar_vista!() - Relaciones:
has_many :estrellas,has_many :usuarios_que_dieron_estrella
- Métodos:
- ✅ Modelo Usuario:
- Métodos:
total_estrellas_otorgadas(),total_estrellas_recibidas() - Relaciones:
has_many :estrellas,has_many :preguntas_favoritas
- Métodos:
- ✅ Modelo Comentario: Eliminada toda lógica de votos
- ✅ PreguntaController:
- Nuevo:
toggle_estrella- Agregar/quitar estrella - Nuevo:
quien_dio_estrella- Ver quién dio estrella (solo autor) - Nuevo:
favoritos- Ver preguntas favoritas del usuario - Eliminado:
votar_arriba,votar_abajo,procesar_voto
- Nuevo:
- ✅ ComentariosController: Eliminadas acciones de votos
- ✅ UsuariosController: Actualizado para mostrar estadísticas de estrellas
# Nuevas rutas
post 'pregunta/:id/toggle_estrella'
get 'pregunta/:id/quien_dio_estrella'
get 'favoritos'
# Rutas eliminadas
patch 'pregunta/:id/votar_arriba'
patch 'pregunta/:id/votar_abajo'
patch 'comentarios/:id/votar_arriba'
patch 'comentarios/:id/votar_abajo'- ✅ Agregado enlace "Favoritos" (solo para usuarios autenticados)
- ✅ Muestra:
★ X estrellasyX vistas - ✅ Eliminados: Botones ▲ ▼
- ✅ Botón: "☆ Dar Estrella" / "★ Quitar Estrella" (según estado)
- ✅ Para el autor: Link para ver quiénes le dieron estrella
- ✅ Contador de vistas incrementado automáticamente
- ✅ Eliminados: Botones de votar y contador de votos
- ✅ Mantenido: Sistema de respuestas anidadas
- ✅ Lista de preguntas a las que el usuario dio estrella
- ✅ Ordenadas por fecha de creación descendente
- ✅ Solo visible para el autor de la pregunta
- ✅ Muestra lista de usuarios con avatar y enlace a perfil
- ✅ Contador total de estrellas
- ✅ Estadísticas actualizadas:
- ★ Estrellas otorgadas (total, sin mostrar a quién)
- ★ Estrellas recibidas (total)
- Preguntas realizadas
- ✅ Cada pregunta muestra su total de estrellas
- ✅ Una persona solo puede dar UNA estrella por pregunta
- ✅ NO puedes dar estrella a tus propias preguntas
- ✅ Puedes quitar tu estrella haciendo clic nuevamente
- ✅ SOLO el autor puede ver quiénes le dieron estrella
- ✅ Todos pueden ver CUÁNTAS estrellas tiene una pregunta
- ✅ Todos pueden ver CUÁNTAS vistas tiene una pregunta (pero no quiénes)
- ✅ Ya NO tienen sistema de votos
- ✅ Mantienen funcionalidad de respuestas anidadas
- ✅ Mantienen edición y eliminación por el autor
- ✅ Cuántas estrellas has OTORGADO (pero no a quién)
- ✅ Cuántas estrellas has RECIBIDO (suma de todas tus preguntas)
- ✅ Número de preguntas realizadas
- ✅ Solo el AUTOR de la pregunta puede ver la lista completa de usuarios que le dieron estrella
- ✅ Las vistas son públicas en número, pero NO se revela quiénes vieron
- ✅ Las estadísticas de perfil muestran totales, NO detalles
rails db:migrate
# ✅ Migración 20260618041917_update_votos_to_estrellas.rb ejecutada exitosamente- ✅ Sin errores de diagnóstico
- ✅ Base de datos actualizada correctamente
- ✅ Todas las vistas renderizadas correctamente
- Probar manualmente todas las funcionalidades
- Agregar índices a la tabla estrellas para mejorar rendimiento:
add_index :estrellas, [:usuario_id, :preguntum_id], unique: true
- Considerar agregar notificaciones cuando alguien da estrella
- Agregar ordenamiento por "más estrellas" en el index de preguntas
Fecha de implementación: 2026-06-18 Estado: ✅ Completado y funcional