1

所以我知道 STI 是有史以来最受辱骂的事情,但我有一个例子,我认为它实际上可能有意义。我的应用程序正在解析一堆不同类型的 xml 文件。每个文件模型都存储完全相同的信息。只是一些关于它与什么用户关联、何时上传以及它在 S3 上存储位置的信息。

存储 xml 文件后,我会解析它以获取用于创建各种其他模型的信息。每种类型的文件都会创建不同的东西。可能有 100 个或更多不同类型的 xml 文件,尽管我不认为我会为那么多编写解析器。STI 在这种情况下有意义吗?

我猜的缺点是模型都在一个目录中,因此它将淹没该目录,除非破解 Rails 并将其粘贴在模型目录的子目录中。

另一种选择是我有一个 kind 字段并将一些东西放在处理所有这些的 lib 目录中。或者我正在使用 resque,也许每个 xml 文件解析器都应该是它自己的工作。这样做有一些缺点,比如在 Rails 控制台中强制工作有点尴尬。

4

1 回答 1

0

根据您的解释,“文件”模型仅存储文件上传过程和相关元数据的结果。如果没有关于从解析的 XML 数据生成的其他类型模型的更多信息,我不明白为什么单表继承适用于这个用例。

于 2011-07-25T23:08:26.323 回答