@javi1237 @gsobrevilla si bien (para ser un primer un intento) esta implementación funciona, la misma presenta un problema. Este approach hace que los amigos queden vinculados a un Game, no al usuario que los invita. En consecuencia, si el usuario quisiera invitar a uno de sus amigos (a quien ya invitó a un juego anterior), se deberá volver a crear un registro en el modelo Friend para que quede ligado al nuevo juego en cuestión.

Más aún, ese Friend que se crea luego quiere crear un juego, éste deberá loguearse con Facebook, lo que creará un User pero, muy posiblemente, tendremos un email que estará duplicado en el sistema (en Friend y User).

Este problema se soluciona haciendo que los amigos, en realidad, sean instancias del modelo User, que se crean al momento de que un usuario invita a alguien como amigo. En consecuencia, el modelo User deberá incluir la información para determinar si el mismo fue invitado o no, y si ya se logueo en el sistema (con Facebook). Como así también, la posibilidad de saber quién fue el User que lo invitó.

Con este approach, si Javier invita a Gastón a un juego y luego viene Juan y también invita a Gastón a otro juego, Gastón será un único usuario para el sistema invitado a dos juegos distintos. Esto va a requerir que la relación entre User y Games sea "1 a N", cuando se asocien los juegos creados por el usuario; pero deberá tener otra relación de tipo "M a N" para asociar los juegos a los que fue invitado (esto se deberá implementar con una tabla nexo que vincule estos dos modelos).

Se animan a intentar implementar esto? Sí, como que no! :D

Usen el Lunes por la mañana para ver esto y cualquier cosa, lo reveemos todos juntos por la tarde.