Я пытаюсь определить серию отношений модели, используя в некоторых случаях собственные имена для модели, а в других - ее собственное имя. Кроме того, на модель могут ссылаться несколько классов, что требует полиморфных отношений.
Следующие модели упрощены (я удалил поля, дополнительные отношения и т. Д.), Но они иллюстрируют структуру, которую я пытаюсь создать, избегая создания унаследованных моделей.
class Gallery
include Mongoid::Document
embedded_in :galleryable, polymorphic: true
end
class App
include Mongoid::Document
embeds_one :about, class_name: 'Gallery', inverse_of: :galleryable
embeds_one :portfolio
end
class Portfolio
include Mongoid::Document
embedded_in :app
embeds_many :galleries, as: :galleryable
end
Я понимаю, что "потомок", внедряемый с помощью пользовательского отношения, также должен иметь определение class_name
и inverse_of:
, но как я могу определить эти значения без необходимости явно определять связанный класс?