Я пытаюсь настроить систему управления версиями на Mongoid. Я сталкиваюсь с проблемой, что новые объекты встроенной версии не сохраняются при сохранении родительского объекта:
class Version
include Mongoid::Document
embedded_in :memorable, :polymorphic => true
field :version_number, :type => Integer
end
class Post
include Mongoid::Document
embeds_many :versions, :as => :memorable
before_save :create_version
field :version, :type => Integer, :default => 1
def create_version
self.versions.build({:version_number => self.version})
self.version = version + 1
end
end
@post = Post.create(:content => "Hello there!")
@post.update_attributes(:content => "Back at you!")
@post.reload
@post.versions
=> []
Есть мысли? Я знаю, что для ссылочных отношений требуется опция: autosave, чтобы сохранить дочерние элементы, но ни в одной документации не указано, что это требуется для встроенных дочерних элементов, и это не устранило проблему, когда я попробовал.