Pregunta

Estoy creando una aplicación donde los usuarios pueden ser de dos tipos: un paciente o un médico. Cada tipo tiene su propio conjunto de atributos.

¿Es posible crear un modelo de usuario que contenga los atributos compartidos y luego crear modelos de paciente y médico que hereden del usuario?

¿Fue útil?

Solución

No, pero puede hacer lo que dijo, y luego para cada subclase agregue una asociación a un modelo que contenga los atributos específicos. Entonces puedes usar delegate hacer que las cosas parezcan perfectas.

class User
end

class Doctor < User
  has_one :doctor_profile
  delegate :phd_in, :to => :doctor_profile
end

class Patient < User
  has_one :patient_profile
  delegate :symptoms, :to => :patient_profile
end

class DoctorProfile
  # E.g. attributes: phd_in:string
end

class PatientProfile
  # E.g. attributes: symptoms:text
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top