Комплексная полиморфная связь - PullRequest
0 голосов
/ 12 января 2011

У меня есть сценарий, в котором мне нужно сложное полиморфное отношение, и мне нужна помощь в этом.

У меня есть модель «Документ», которую можно присоединить к любой модели, например, «Сотрудник», «Пользователь».и т. д.

Я разрабатываю плагин для прикрепления различных документов

class Employee < ActiveRecord::Base
    attach_documents_as :general_documents
    attach_documents_as :meeting_documents
end

До этого момента я добился успеха.Но чтобы получить больше, мне нужно присвоить документу какой-то тип, для этого я хочу указать название модели типа документа с помощью основной модели.

class Employee < ActiveRecord::Base
    attach_documents_as :general_documents, :general_doc_types
    attach_documents_as :meeting_documents, :meeting_doc_types
    attach_documents_as :job_record, :misc_doc_types
end

Здесь

:general_doc_types , :meeting_doc_types, :misc_doc_types

- это все названия моделей.

У меня есть модель документа, подобная этой.

class Document < ActiveRecord::Base
      attr_accessible :title, :description, :attachment
      belongs_to :attachable, :polymorphic => true
      has_attached_file :attachment
end

Может кто-нибудь иметь представление о том, как я могу установить отношение документа к различным моделям типов.Будем искать ваши отзывы.

1 Ответ

0 голосов
/ 12 января 2011

Похоже, вы создаете полиморфные отношения, используя наследование одной таблицы.Я немного искал это и не придумал слишком много решений, что заставляет меня задуматься, есть ли лучший подход.Я не делал этого раньше, поэтому не могу сказать наверняка.Один пример, который я нашел, выглядит так, будто он довольно прост в настройке.http://www.mendable.com/2010/03/30/polymorphic-single-table-inheritance-sti.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...