【发布时间】:2011-08-12 20:20:43
【问题描述】:
我正在努力思考如何使用多态关联设置此架构:
“文档”有一个元数据对象,但可以是“PDFMetaData”或“TXTMetaData”。
我的担忧是:
要建立这个关联,我可以这样做
class Document
belongs_to :metadata, :polymorphic => true
end
class PDFMetaData
has_one :document, :as => :metadata
end
class TXTMetaData
has_one :document, :as => :metadata
end
这行得通,但对我来说有点相反:一个文档 has_one 元数据对象,而不是相反的?
另外,我在尝试为我的新文档创建嵌套表单时确实遇到了问题。我知道我可以使用 fields_for,但我怎么知道它是什么类型的对象? (PDFMetaData 或 TXTMetaData)。我是否必须根据我拥有的文档类型来呈现单独的部分?
恐怕后者与我的第一个问题有关,而且我做错了什么。
谢谢
【问题讨论】:
标签: ruby-on-rails forms polymorphism