J'ai un document MongoId qui intègre d'autres documents avec une relation comme ceci:MongoId: Changer l'ordre des documents dans une relation embeds_many
embeds_many: blocs
La création de nouveaux blocs fonctionne très bien, mais je ne peux pas parvient à modifier l'ordre des documents incorporés existants. Par exemple, j'ai trois blocs intégrés et je veux déplacer le dernier à la première position .Quelle est la bonne façon de faire cela?
Cela ne semble pas fonctionner (plus? - J'utilise mongoid 3.0.9). Sans duper b.attributes je reçois une erreur à cause d'un hachage gelé. Et puis je rencontre des problèmes avec _id/_type non accessible (attr_accessible). Donc, je devais désactiver la protection d'assignation de masse (que je ne veux pas de toute façon) –
Vous pourriez avoir raison. Cela a été définitivement découvert sur Mongoid 2. Vous allez vouloir conditionner les b.attributs pour ne plus être que les champs que vous voulez copier, en omettant le _id, _type, etc. La méthode des attributs doit fonctionner différemment en 3, je peux seulement supposer. – jeremy6d
Si vous souhaitez conserver les attributs protégés (_id, _type, etc ...), vous devrez les définir explicitement. par exemple: 'new_block = blocks.build (b.attributes)' 'new_block._id = b._id' ' new_block.save' – Matt