我有以下型号:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
class Teacher < User
end
class Student < User
end
用户通过创建用户的设备表单登录。我希望有两种类型的配置文件,如老师和学生,但它们也可以同时使用。
因此,当我去创建一位新教师时,我只需要teachers/id/edit
表单并更新继承自用户的教师。我应该这样做还是可以去teacher/new
?当我的模型像我一样继承时,从那里创建一个老师?
答案 0 :(得分:0)
不要在这里使用继承。创建单独的TeacherProfile
和StudentProfile
表,并进行一对一关联:
class TeacherProfile
belongs_to :user
end
class StudentProfile
belongs_to :user
end
class TeacherProfile
has_one :teacher_profile
has_one :user_profile
end
然后按照标准协议进行操作。直接转到edit
,检查配置文件是否存在,如果不存在则创建它,如下所示:
def edit
@profile = TeacherProfiler.where(user: current_user).first_or_create
end