1
我正在为一个应用程序设计数据模型,其中我有不同类型的用户,如学生,员工,家长等。让我们说他们每个人都被称为人。 我对这些包含实体特定信息的实体都有单独的表。我有一个包含像我已经建立了两列的帮助下对 用户表用户和其他人之间的关系LOGIN_ID,密码等 用户特定信息的用户表: 1.为person_id整数 2. person_type整数用户和人员协会
下面是类定义:
class User < ActiveRecord :: Base
belongs_to :person, :polymorphic =>true, :dependent => :destory
end
class Student < ActiveRecord :: Base
has_one :user, :as => :person
end
class Parent < ActiveRecord :: Base
has_one :user, :as => :person
end
class Employee < ActiveRecord :: Base
has_one :user, :as => :person
end
我想这种设计您的宝贵意见。它是好的还是需要做任何改变?
上述设计的问题是,如果我销毁学生,关联的用户不会自动销毁。有没有办法可以指定如果一个人(学生或雇员或父母)被销毁,那么相应的应该被自动销毁? – Venkat 2012-07-26 09:56:48
看'依赖'选项'has_one'。 http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_one – 2012-07-26 10:13:28
谢谢Denis!你的建议奏效了。当我在Person(学生或员工或家长)上设置:dependent =>:destroy并在Person上调用destory方法时,相应的用户记录将自动删除。 – Venkat 2012-07-30 12:32:38