让用户在Rails中创建自己的模型

时间:2012-12-31 01:18:49

标签: ruby-on-rails-3 database-design

在我的Rails项目中,我有两个相似的模型SafetyTestTeamDue。他们的字段完全相同,只是名称不同。每个实例belongs_to一个Student

我想添加创建遵循上述两种结构的 new 模型的功能。所以也许我想添加MedicalForm。我不希望作为开发人员在CLI上执行此操作,但在视图中提供了一个界面,以便管理员可以添加自己的界面。

假设SafetyTestTeamDueMedicalForm都可以用名称SeasonalRequirement来描述。实现我的想法的最佳和最可维护的方法是什么?

我在Rails方面没有经验,但我的想法是将上面的模型合并到一个名为SeasonalRequirement的综合模型中,并为每种类型添加type列。问题是:用户如何创建新类型的季节性需求(例如MedicalForm)?当我试图为每个人显示一个单独的部分时,我怎么能确定有哪些类型的季节性要求呢?

2 个答案:

答案 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)

这样做的缺点是它只能使用字符串值

相关问题