1

STIはこれまでに一番嫌悪されていることは知っていますが、実際には意味をなさないと思うインスタンスがあります。私のアプリはxmlファイルの種類の束を解析しています。すべてのファイルモデルは、まったく同じ情報を格納します。どのユーザに関連付けられているか、アップロードされた日時、S3に保存されている場所に関するちょっとした情報。STIはいつ意味がありますか?私たちはすべてのタイプについて同じ情報を保管していますが、別のものを使用しています

xmlファイルが格納された後、私は様々な他のモデルを作成するために使用する情報を解析します。それぞれのタイプのファイルは異なるものを作成します。 100以上の異なる種類のxmlファイルが存在する可能性はありますが、私はその多くのパーサーを書くつもりはないと思います。この場合、STIは理にかなっていますか?

私が推測している欠点は、モデルがすべて1つのディレクトリにあるため、Railsをハックしてモデルディレクトリ内のサブディレクトリに貼り付けない限り、そのディレクトリにあふれてしまうことです。

もう一つのオプションは、私はkindフィールドを持っていて、これを扱うlibディレクトリに何かを置くことです。または、私はresqueを使用しています。多分、すべてのxmlファイルパーサはそれ自身の仕事でなければなりません。それには欠点がありますが、それはレールコンソールで作業を強制するのは厄介です。

+0

STIは、同じデータが存在する場合には最も意味がありますが、データには異なる動作が付いています。たとえば、その人は、学生と教師になることができます。どちらも同じような属性を持ちますが、動作が異なります。 100種類のモデルを書くことは、私には分かりません。あなたは少し考え直すべきかもしれない。 – rubish

+0

あなたはおそらくこれを答えにしてください、私は確かにそれをアップ票するでしょう。 –

+0

100種類のモデルが極端ですが、xmlファイルはきわめて異なる形式のデータを含んでいます。私は、それぞれ異なるタイプのフォームを用意して、それをうまく整理する方法が必要です。だから私はそれがSTIでないならば、提案には開いている。 – hadees

答えて

0

「ファイル」モデルは、ファイルアップロードプロセスの結果と関連するメタデータのみを保存しています。解析されたXMLデータから生成される他の種類のモデルに関する詳細情報がなければ、単一のテーブル継承がなぜこのユースケースに当てはまるのかわかりません。

+0

生成されるモデルの種類は重要ですか?どうやってこれを扱いますか? – hadees

関連する問題