3

私は単純なモデルオブジェクトを持っています:

class UserRating
include MongoMapper::EmbeddedDocument       
key :idea_id, ObjectId
key :rating, Integer
end

このオブジェクトに Idea_Id を設定しようとしています: user_rating.idea_id = ObjectId.new

これにより、「不正な ObjectID 形式」がスローされます

これは確かに単純なコードのように思えます...私が気付いている唯一の奇妙な点は、ObjectID != ObjectId. これは、エラー メッセージに問題がある可能性があります。わからない。非常に単純なコード。なぜ私がそれを機能させることができないのか分かりません。それが役立つ場合、これは Cucumber テスト内の Rails 3 Beta 4 プロジェクトのコンテキストにあります。私は mongodb デーモンを正常にヒットしているので、奇妙な接続の問題はありません。ポインタをいただければ幸いです。

4

2 に答える 2

3

MongoMapper には ObjectId というプロキシ オブジェクトがあります。この場合は、mongodb 自体に格納されている ID を表す BSON::ObjectID が必要です。

あなたはおそらく欲しい:

key :idea_id, BSON::ObjectID, :index => true
于 2010-08-03T02:19:45.913 に答える
2

いいえ、ObjectIdが必要です。これを割り当てるときは、MMモデルごとに生成される実際のオブジェクトIDを渡す必要があります。

user_rating.idea_id = idea.id

于 2010-08-04T04:36:53.960 に答える