在我的Rails项目中,我有两个相似的模型SafetyTest
和TeamDue
。他们的字段完全相同,只是名称不同。每个实例belongs_to
一个Student
。
我想添加创建遵循上述两种结构的 new 模型的功能。所以也许我想添加MedicalForm
。我不希望作为开发人员在CLI上执行此操作,但在视图中提供了一个界面,以便管理员可以添加自己的界面。
假设SafetyTest
,TeamDue
和MedicalForm
都可以用名称SeasonalRequirement
来描述。实现我的想法的最佳和最可维护的方法是什么?
我在Rails方面没有经验,但我的想法是将上面的模型合并到一个名为SeasonalRequirement
的综合模型中,并为每种类型添加type
列。问题是:用户如何创建新类型的季节性需求(例如MedicalForm
)?当我试图为每个人显示一个单独的部分时,我怎么能确定有哪些类型的季节性要求呢?
答案 0 :(得分:1)
我会考虑这种多态或STI关系。
详情请见:http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html
我会使用STI对此进行建模。
答案 1 :(得分:0)
没有使用RoR,让用户改变数据库的结构似乎是一个坏主意。
可能有用的东西是这样的:
additional_student_columns
--------------------------
id
name
并添加另一个表:
additional_student_values
--------------------------
student_id
column_id
value (string)
这样做的缺点是它只能使用字符串值