ОК, поэтому у меня возникла та же проблема, и я только что наткнулся на решение (я проверял код для метаданных по отношениям ).
Попробуйте это:
class Blog
embeds_many :themes, :as => :themes_collection, :class_name => "Theme"
embeds_one :theme, :as => :theme_item, :class_name => "Theme"
end
class Theme
embedded_in :themes_collection, :polymorphic => true
embedded_in :theme_item, :polymorphic => true
end
Что я обнаружил предположил, что:
- первый параметр (например,
:themes
) фактически становится именем метода. :as
подделывает фактические отношения, поэтому необходимость их сопоставления в обоих классах. :class_name
кажется довольно очевидной, класс, используемый для фактической сериализации данных.
Надеюсь, это поможет - я, очевидно, не эксперт по внутренней работе на mongoid, но этого должно быть достаточно, чтобы вы начали работать.Мои тесты теперь зеленые, и данные сериализуются, как и ожидалось.