2012-02-06 3 views
0

Des MongoId docs:MongoId - Mise à jour Nested Attributs

Tenir compte un membre qui a un certain nombre de messages:

membres de classe comprennent MongoId de has_many Document: messages
accepts_nested_attributes_for: messages fin

Vous pouvez maintenant définir ou mettre à jour les attributs d'un modèle de poste associé via le hachage d'attribut.

Pour chaque hachage qui n'a pas de clé d'identification, un nouvel enregistrement sera instancié, sauf si le hachage contient également une clé _destroy que évalue à true.

params = {member: {name: "joe", posts_attributes: [ {title: "Kari, l'incroyable navigateur de documentation Ruby!" }, {Title : "L'hypothèse égalitaire ..."}, {title: "", _destroy: "1"} # ce sera ignoré]}}

member = Member.create (params [ » membre ']) member.posts.length # => 2 member.posts.first.title # =>' Kari, l'impressionnante documentation Ruby navigateur! ' member.posts.second.title # => « L'hypothèse égalitaire ... »

Est-il possible de mettre à jour les attributs imbriqués au lieu de créer eux?

+0

pouvez-vous poster votre schéma, il devrait être plus simple de répondre. –

+0

C'est un très gros schéma, je vais le couper et le poster. – CamelCamelCamel

+1

Y a-t-il une chance que vous puissiez poster le schéma ou avez-vous obtenu ce résolu myxospsm? –

Répondre

1

Il repose sur les documents imbriqués ayant des ID.

Dans un formulaire Rails, par exemple, les champs d'attributs correspondants (dans votre cas, posts_attributes) seront transmis dans le cadre du formulaire. Rails fait ensuite une mise à jour pour les éléments avec un ID, et un créer pour ceux sans un ID.

Questions connexes