[Ror-es] Como implementar un sistema de votacion multi-modelo?

Raul Murciano raul at murciano.net
Wed Dec 12 09:27:49 GMT 2007


Jaime Iniesta escribió:
> Estoy dándole vueltas a cómo hacer un sistema de votación (estilo digg
> o meneame), para una comunidad de usuarios, donde los usuarios
> escriben su blog y suben sus fotos, y todo es votable.
> 
> O sea, a diferencia de meneame/digg donde solo votas un tipo de
> modelo, los enlaces a noticias, aquí se tiene que poder votar por
> separado los posts de los blog y las fotos de los usuarios, y así
> poder ver las fotos más votadas, los posts más votados, etc. Y también
> otros modelos asociados a los usuarios. Quizá incluso se pueda votar
> directamente a los usuarios.
> 
> ¿Cuál creéis que sería la mejor manera de plantear esto? Estaba
> pensando en usar herencia, en plan tener una clase "Votable" con toda
> la funcionalidad necesaria (anotar karma, asociar votos, etc.), y de
> ahí descienden Usuarios, Fotos y Posts... pero usando single table
> inheritance sería un tanto guarro, por la necesidad de meterlo todo en
> una sola tabla.
> 
> ¿Se os ocurre una solución mejor? ¿O paso de herencia y lo implemento
> por separado para cada modelo?

De primeras se me ocurre agrupar esas funcionalidades en un módulo 
'Votable' y, en los modelos necesarios, incluir ese módulo y crearles el 
campo 'votes' en cada tabla.


-- 
Raul Murciano - Freelance Web Developer
http://raul.murciano.net



More information about the Ror-es mailing list