0

Mongoid への最初の本格的な飛び込みであるプロジェクトがあります。

次のコマンドを使用するためのヒントを見ました。

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

しかし、これはうまくいきません。エラー メッセージは次のとおりです。

NameError: uninitialized constant Moped::BSON

BSON が含まれていないことがわかったので、Gemfile と Moped に追加しました。次に、見つけた別の修正を行いました ( Moped::BSON=BSONapplication.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 に答える