通过关系连接 rails has_many 中的列
Concatenate columns in rails has_many through relationship
医师has_many 预约患者
患者 has_many 预约医生
如何在预约模型中自动使预约名称成为医生姓名和患者姓名的串联?
Physician.name = 'Joe Doctor'
Patient.name = ' Sally Smith'
Appointment.name = "#{Patient.name} with #{Physician.name}"
这不是我们的真实世界使用,而是一个简化的示例。谢谢
假设您在每次预约中有一名患者和一名医生,您可以在预约模型中定义一个方法,例如:
def name
self.patient.name + ' with ' + self.physician.name
end
一种方法是:
class Appointment
belongs_to :doctor
belongs_to :patient
before_create :set_default_name #optional it can be called imperatively
def set_default_name
if patient && doctor
self.name= "#{patient.name} with #{doctor.name}"
end
end
end
这样,每当您将 patient
添加到 doctor.patients
时,它应该会自动设置约会名称:
@doctor.patients << @patient
@doctor.appointments.last.name # => "Dr Who with Mr Spock"
医师has_many 预约患者
患者 has_many 预约医生
如何在预约模型中自动使预约名称成为医生姓名和患者姓名的串联?
Physician.name = 'Joe Doctor'
Patient.name = ' Sally Smith'
Appointment.name = "#{Patient.name} with #{Physician.name}"
这不是我们的真实世界使用,而是一个简化的示例。谢谢
假设您在每次预约中有一名患者和一名医生,您可以在预约模型中定义一个方法,例如:
def name
self.patient.name + ' with ' + self.physician.name
end
一种方法是:
class Appointment
belongs_to :doctor
belongs_to :patient
before_create :set_default_name #optional it can be called imperatively
def set_default_name
if patient && doctor
self.name= "#{patient.name} with #{doctor.name}"
end
end
end
这样,每当您将 patient
添加到 doctor.patients
时,它应该会自动设置约会名称:
@doctor.patients << @patient
@doctor.appointments.last.name # => "Dr Who with Mr Spock"