Rails: herencia modelo
-
26-10-2019 - |
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?
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