2012-02-06 6 views
0

из Mongoid документы:Mongoid - Обновление вложенных атрибутов

Рассмотрим элемент, который имеет ряд должностей:

класс член включают Mongoid :: HAS_MANY Документ: сообщения
accepts_nested_attributes_for: сообщения конец

Теперь вы можете установить или обновить атрибуты в связанной модели сообщений через хэш атрибута.

Для каждого хэша, у которого нет ключа id, новая запись будет создаваться в виде , если хэш не содержит ключ _destroy, который оценивает true.

params = {member: {name: "joe", posts_attributes: [ {title: "Kari, ужасный браузер документации Ruby!" }, { название: "Эгалитарная предположение ..."}, { название: "", _destroy: "1"} # это будет проигнорирован]}}

член = Member.create (PARAMS [» member ']) member.posts.length # => 2 member.posts.first.title # =>' Kari, ужасная документация Ruby браузер! ' member.posts.second.title # => «уравнительного предположения ...»

Есть ли способ, чтобы обновить вложенные атрибуты вместо создания их?

+0

Можете ли вы опубликовать свою схему, она должна быть проще ответить. –

+0

Это действительно большая схема, я сокращу ее и опубликую. – CamelCamelCamel

+1

Любой шанс вы могли бы опубликовать схему, или вы получили этот разрешенный myxospsm? –

ответ

1

Он полагается на вложенные документы, имеющие идентификаторы.

В форме Rails, например, соответствующие поля атрибутов (в вашем случае, posts_attributes) будут переданы как часть формы. Затем Rails обновляет элементы с идентификатором и создает для них без ID.

Смежные вопросы