Rails 3.0.9 で MongoMapper 0.9.1 を使用していますが、カスタム クラスのオブジェクトを DB に保存しようとすると、次のエラーがスローされます。
BSON::InvalidDocument (クラス Signature のオブジェクトを BSON にシリアライズできません。)
私のアプリケーションでは、ユーザーがドキュメントに署名できるようになり、これらの署名はカスタム クラスに保存する必要があります。それを格納する Doc クラスの前に Signature クラスを宣言しただけです。
class Signature
@value
@date
@user
def self.to_mongo(value)
value.to_a
end
def self.from_mongo(value)
Signature.new(value || [])
end
end
class Doc
# ...
to_mongo または from_mongo メソッドをコメントアウトしても、コントローラーから呼び出してテストしたい場合は、常に上記の例外がスローされます。
doc = Doc.new {:signature => Signature.new}
私の場合、なぜそれが機能しないのかわかりません。あなたの誰かがアイデアを持っているなら、あなたが私を助けてくれるならそれは素晴らしいことです. 事前にどうもありがとうございました!
よろしく、セバスチャン