我应该对从其他模型继承的模型使用新操作还是编辑操作
Should I use new or edit action on model that inherits from other model
我有以下型号:
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
?当我让我的模型像我一样继承时,从那里创建一个老师?
这里不要使用继承。创建单独的 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
我有以下型号:
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
?当我让我的模型像我一样继承时,从那里创建一个老师?
这里不要使用继承。创建单独的 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