dblock/mongoid-cached-json — pull request #4 by macreery (2012-03-21 18:20:45+00:00)
Title: Fix for caching referenced documents belonging to a polymorphic collection

cc: @aaw

The cause of this bug is that when we generate cache keys for storing referenced documents, we use the parent document's interpretation of the referenced document's class, which may differ from the referenced document's own interpretation of its class, in the case of polymorphic collections. Thus, when we invalidate the referenced document (by its actual class name), the parent document never catches wind of the invalidation.

Incidentally, this was not a problem for embedded documents, since in the current code we always materialize the embedded document as a full object, rather than just via Mongoid metadata. I wrote a spec for embedded documents anyway.