ruby-on-rails-3 – Rails中的类继承表3
我目前正在使用一个Rails 3应用程序,它似乎可能需要为几个模型使用Class Table Inheritance.
这是一个简单的例子. 我有一个名为Person的类,其名称,电子邮件,密码等通用属性,这些属性适用于所有类型的用户,并用于认证. 人(或两类人)有两个子类,司机和乘客.这两个子类共享Person的通用属性,但是具有对于它们是唯一的特定附加属性. (例如,司机可以拥有许多车辆和许可证,但乘客不会) 如何在这种情况下实施CTI?我一直在看这里提供的例子: http://rhnh.net/2010/08/15/class-table-inheritance-and-eager-loading 但是它并不推测如何从Driver或Passenger对象访问Person的常见属性,我有点困惑. 特别是,我想知道的是: 如果我正在更新驱动程序的属性,我如何轻松访问和更新父员工表上的相关属性?我必须钩住一个after_save回调并分离哪个属性更新到哪里?还是有更好的方法呢? 解决方法
还有一个插件’acts_as_relation’来做到这一点,
https://github.com/hzamani/acts_as_relation/ 在你的情况下,代码将是这样的: class Driver < ActiveRecord::Base acts_as :person end class Passenger < ActiveRecord::Base acts_as :person end 不要忘记在person表中添加person_type和person_id列.现在Drive和Passenger都继承Person属性,验证和方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |