Лучший способ обновить встроенный документ в mongoid - PullRequest
0 голосов
/ 18 июня 2011

Я перенес свой проект из mysql в mongodb и у меня возникли некоторые проблемы.

Как обновить атрибуты во встроенном документе способом ActiveRecord? Можно в монгоиде?

class Template
    include Mongoid::Document
    include Mongoid::Versioning

    embedded_in :site, :inverse_of => :templates
end

class Site
  embeds_many :templates
end

Например:

site = Site.find(params[:current_site_id])
template = site.templates.find(params[:id])

template.update_attributes(params[:template])

Я получил:

Access to the collection for Template is not allowed since it is an embedded document, please access a collection from the root document.

Хорошо, но как это сделать из корневого документа?

Редактировать

Похоже, Mongoid :: Управление версиями, которое я использую в Template, создает некоторые проблемы. Я удаляю включенный модуль и все работает нормально.

1 Ответ

0 голосов
/ 26 июня 2011

Существует pb с версией mongoid со встроенными документами, то же самое происходит, если вы используете режим паранойи. Я бы предложил деактивировать эти опции для ваших встроенных документов и реплицировать их самостоятельно, если вам это действительно нужно.

Alex

...