Rails: модель наследования - PullRequest
       2

Rails: модель наследования

1 голос
/ 18 октября 2011

Я создаю приложение, в котором пользователи могут быть двух типов: пациент или врач. Каждый тип имеет свой собственный набор атрибутов.

Можно ли создать модель пользователя, содержащую общие атрибуты, а затем создать модели пациента и доктора, которые наследуются от пользователя?

1 Ответ

2 голосов
/ 18 октября 2011

Нет, но вы можете сделать то, что вы сказали, а затем для каждого подкласса добавить ассоциацию к модели, которая содержит определенные атрибуты. Затем вы можете использовать delegate, чтобы все выглядело гладко.

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
...