0

我有一个项目是我第一次认真研究 Mongoid。

我看到了使用以下命令的提示:

Parent.where('childrens._id' => Moped::BSON::ObjectId(params[:id])).first

但这不起作用。错误信息是:

NameError: uninitialized constant Moped::BSON

我发现 BSON 不再包含在内,所以我将它添加到我的 Gemfile 以及 Moped 中。然后,我做了另一个我发现的修复(放置Moped::BSON=BSON在 application.rb 中)。

这仍然不起作用,但错误更改为:

NoMethodError: undefined method `ObjectId' for BSON:Module

所以我假设这个方法已经被弃用了。有没有人有任何其他提示?

为了清楚起见,我发现自己处于想要使用 jquery-sortable 对嵌入文档进行排序的情况。这需要我在数据库中更新它们,但是其中的序列化不包括哈希中的父文档。所以我想我会尝试使用嵌入式文档中的 ID 在后端获取它。这就是我需要它的原因。

再次感谢您提供的任何帮助。

4

2 回答 2

0

我已经解决了这个问题,尽管这对未来的人们没有太大帮助。要求已经改变,现在我使用人类可读的字符串作为 ID 来协助友好的 URL 和其他一些东西。

因此,我对 ObjectIds 没有任何问题。Cortex 的解决方案应该(根据我的阅读)可以处理 ObjectIds,但我现在无法验证它。

于 2014-04-28T18:37:36.577 回答
0

尝试简单:

Parent.where('childrens._id' => params[:id]).first
于 2014-04-28T15:17:29.977 回答