复杂的多态关系

时间:2011-01-12 11:40:07

标签: ruby-on-rails activerecord ruby-on-rails-3

我有一个场景,我需要一个复杂的多态关系,并需要帮助。

我有一个模型“文档”,可以附加到任何模型,如“员工”,“用户”等。

我正在开发一个附加不同文档的插件

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 :(得分:0)

看起来您正在使用单表继承创建多态关系。我搜索了一下这个并没有提出太多解决方案,这让我想知道是否有更好的方法。我之前没有这样做,所以我无法确切地说。我发现的一个例子看起来很简单。 http://www.mendable.com/2010/03/30/polymorphic-single-table-inheritance-sti.html

相关问题