我应该对从其他模型继承的模型使用新操作还是编辑操作

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 ?当我让我的模型像我一样继承时,从那里创建一个老师?

这里不要使用继承。创建单独的 TeacherProfileStudentProfile 表,并进行一对一关联:

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