Necesito usuarios que puedan ser fanáticos de otros usuarios. ¿Cómo debo diseñar/configurar esto?Cómo hacer: El usuario tiene fans
Necesito poder ver los detalles de los fans de los usuarios.
Por ejemplo. Tengo un usuario: Foo. Foo tiene 3 fans. Me gustaría poder encontrar los nombres de los fanáticos de Foo. Como tal:
foo = User.first
foo.name (returns 'Foo')
foo.fans.first.user.name (should return 'bar', since 'bar' is a fan of 'foo')
Ésta es la forma en que he establecido en la actualidad
User model:
embeds_many :fans
references_many :fans
Fan model:
embedded_in :user, :inverse_of => :fans
referenced_in :user
In console, I do:
User.first.fans.create!(:user => User.first)
y consigo: MongoId :: :: Errores InvalidCollection: Acceso a la colección de ventilador es no permitido, ya que es un documento incrustado, acceda a una colección desde el documento raíz. Creo que el problema es que, debido a que el modelo de ventilador está incrustado en el modelo de usuario que también tiene una autorreferencia al modelo de usuario ...
Le agradecerán mucho sus comentarios.
User.first.fans << User.last returns Mongo :: OperationFailure: query –
inválido No puede usar 'first' y' last' así, y no puede modificar las asociaciones en su lugar de esa manera. A menudo, 'User.last' devolverá lo mismo que' User.first'! Debe hacer 'u = User.all.entries.first; u2 = User.all.entries.last; u.fans << u2'. Acabo de probar este código nuevamente y funciona para mí. – bowsersenior
¿Y esto me permitirá hacer que los usuarios también se vuelvan fan de ellos mismos? –