J'ai besoin d'utilisateurs pour devenir des fans d'autres utilisateurs. Comment devrais-je concevoir/configurer ceci?Comment: L'utilisateur a des fans
Je dois pouvoir voir les détails des utilisateurs.
Par exemple. J'ai un utilisateur: Foo. Foo a 3 fans. J'aimerais pouvoir trouver les noms des fans de Foo. En tant que tel:
foo = User.first
foo.name (returns 'Foo')
foo.fans.first.user.name (should return 'bar', since 'bar' is a fan of 'foo')
Voici comment je l'ai mis en place au moment:
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)
et je reçois: MongoId :: :: Erreurs InvalidCollection: L'accès à la collection pour Fan est non autorisé puisqu'il s'agit d'un document incorporé, accédez à une collection à partir du document racine. Je pense que le problème est, parce que le modèle de ventilateur est intégré dans le modèle de l'utilisateur qui a une auto-référence au modèle de l'utilisateur aussi ....
Vos pensées seront grandement appréciées.
User.first.fans << User.last renvoie Mongo :: OperationFailure: requête invalide –
Vous ne pouvez pas utiliser 'first' et' last' comme ça, et vous ne pouvez pas modifier les associations en place comme ça. Souvent, 'User.last' retournera la même chose que' User.first'! Vous devez faire 'u = User.all.entries.first; u2 = User.all.entries.last; u.fans << u2 ». Je viens de tester ce code et ça marche pour moi. – bowsersenior
Et cela va me permettre de faire en sorte que les utilisateurs deviennent aussi fan d'eux-mêmes? –