0

私のRailsプロジェクトには、2つの類似したモデルSafetyTestとがありTeamDueます。それらのフィールドはまったく同じであり、名前だけが異なります。各インスタンスbelongs_toa Student

上記の2つの構造に従う新しいモデルを作成する機能を追加したいと思います。だから多分私は追加したいと思いMedicalFormます。開発者としてCLIを介してこれを実行したくはありませんが、管理者が独自のインターフェイスを追加できるように、ビューにインターフェイスを提供します。

SafetyTest、、、TeamDueおよびMedicalFormすべてを。という名前で記述できるとしましょうSeasonalRequirement。私のアイデアを実装するための最良かつ最も保守可能な方法は何でしょうか?

私はRailsの経験はありませんが、上記のモデルをと呼ばれる1つの包括的なモデルに組み込み、すべてのタイプに列をSeasonalRequirement追加するというアイデアがありました。typeこれに関する問題:ユーザーはどのようにして新しいタイプの季節要件(などMedicalForm)を作成しますか?また、それぞれに個別のセクションを表示しようとしているときに、どのような種類の季節的な要件があるかをどのように判断すればよいでしょうか。

4

2 に答える 2

1

私はこれについて多形性またはSTIの関係を検討します。

詳細については、http://code.alexreisner.com/articles/single-table-inheritance-in-rails.htmlをご覧ください。

これをモデル化するためにSTIを使用します。

于 2012-12-31T01:33:03.500 に答える
0

RoRはあまり使用されていませんが、ユーザーにデータベースの構造を変更させるのは悪い考えのようです。

うまくいくかもしれないものはこのようなものです:

additional_student_columns
--------------------------
id
name

そして別のテーブルを追加します:

additional_student_values
--------------------------
student_id
column_id
value (string)

これの欠点は、文字列値だけを使用できることです。

于 2012-12-31T01:25:42.420 に答える