我在我的应用程序中使用单表继承,并且遇到了从祖先构建继承用户的问题。例如,使用以下设置:
class School < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
attr_accessible :type #etc...
belongs_to :school
end
Class Instructor < User
attr_accessible :terms_of_service
validates :terms_of_service, :acceptance => true
end
Class Student < User
end
如何从Schoolinstructor
的实例构建一个或记录?尝试类似的事情只给我一个新的用户实例,我将无法访问讲师特定的字段,例如在生成特定于讲师的表格时导致错误,从控制台构建会给我一个批量分配错误(因为它是尝试创建用户记录而不是指定的讲师记录)。我举了学校的例子student
School.first.instructors.build(....)
terms_of_service
,但是我想从 User 表继承一些其他关联,因此我不必重复数据库中的代码或字段。我是否遇到此问题是因为无法在 STI 设置中共享关联?