Как я могу открыть встроенную коллекцию Mongoid?

У меня есть настройка mongoid в моем приложении rails3, и я создал 2 модели. Одна модель — пользователь, а другая — статья.

Поскольку каждый пользователь может создавать много статей, я поставил:

embedded_in :user

в файле model/article.rb и:

embeds_many :articles

в файле model/user.rb.

Теперь, если я получаю доступ к статье по «app_url/articles/random_article_id», я получаю следующую ошибку.

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

Хотя я хочу поддерживать отношения, я хочу, чтобы статьи были доступны для любых людей. Как мне это сделать??


person user482594    schedule 07.05.2011    source источник


Ответы (2)


Похоже, вам нужно отношение, на которое ссылаются, а не отношение внедрения: http://mongoid.org/docs/relations/referenced.html

person Ben Taitelbaum    schedule 08.05.2011

также, если вам действительно нужно встраивать статьи, сделайте следующее:

User.where("article.id" => params[:id].first.articles.find(params[:id])

но, как сказал Бен, вам лучше использовать own_to вместо embedded_in.

person sandrew    schedule 08.05.2011