0

我在我的 rails3 应用程序中有 mongoid 设置,并创建了 2 个模型。一个模型是用户,另一个模型是文章。

由于我每个用户都可以创建许多文章,因此我放了:

embedded_in :user

在 model/article.rb 文件中,并且:

embeds_many :articles

在模型/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.

虽然我想保持关系,但我希望任何人都可以访问文章。我怎样才能做到这一点??

4

2 回答 2

1

听起来您想要的是引用关系而不是嵌入关系: http: //mongoid.org/docs/relations/referenced.html

于 2011-05-08T03:58:39.473 回答
1

另外,如果您确实需要嵌入文章,请执行以下操作:

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

但是,正如本所说,您最好使用belongs_to 而不是embedded_in。

于 2011-05-08T05:50:32.513 回答