假设有一个名为user的activerecord类,它代表数据库的用户表。继承ActiveRecord对象
但我有不同的类型,其具有
- 特殊功能的用户
- 特殊变量
- 定制的关系(雇主的has_many公司,员工belongs_to的公司:)
而且这些用户有很多共同的功能。所以我想要做的是为每种不同类型的用户创建类,然后从用户类继承它们。
- 用户<的ActiveRecord :: Base的
- 雇主<用户
- 员工<用户
- 客户<用户
什么是做这样的事情的最好方法?
感谢
假设有一个名为user的activerecord类,它代表数据库的用户表。继承ActiveRecord对象
但我有不同的类型,其具有
而且这些用户有很多共同的功能。所以我想要做的是为每种不同类型的用户创建类,然后从用户类继承它们。
什么是做这样的事情的最好方法?
感谢
很多应用程序开始了与某种形式的User
模型。随着时间的推移,随着不同类型的用户涌现,对它们进行更大的区分可能是有意义的。引入了Admin
和Guest
类,作为User
的子类。现在,共享的行为可以存在于User
中,并且可以将子类型行为推送到子类。但是,所有用户数据仍可以驻留在用户表中。
所有你需要做的就是添加一个type
列到users
表,将持有的类名实例化一个给定的行。 Active Record在从数据库加载对象时负责实例化对象的类型。
该技术被称为单表继承或STI(简称)。
关于STI的一篇非常好的近期文章是:http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html
看一看这个线程模型子类:
完美谢谢。最后,每个班的习惯关系呢? – 2011-02-24 05:29:18