在RUby on Rails中考虑这个简单的应用程序:
学生&老师扩展了人。 人有2个属性,名称&年龄。 学生还有1个额外的房产,等级。 老师有1个额外的财产,薪水。
我想存储学生&单独的数据库表中的教师信息。我想利用RoR的实用程序类ActiveRecord:Base
来检索这些模型的数据。由于预计Person
不会被实例化,因此我可以将其与Student
& Teacher
如下:
class Student < ActiveRecord:Base
include Person
end
module Person
end
问题:
persons
的数据库表的情况下实现此目的?我只想生成2个表,即students
和teachers
,两者都应该具有上面提到的3个属性。答案 0 :(得分:1)
人不必是模型 - 它可以是库/模块(然后根据您的示例混合)。你会在RAILS_ROOT / lib中保留它。 您的学生和教师课程可以是模型(使用AR :: Base),而这个人可以只是两者使用的一堆常用方法。
或者,如果您的子类更复杂 - 请查看“单表继承” - 其描述超出了此答案的范围...但您可以谷歌搜索它。