假设我有模特医生和模特病人.病人属于医生.
医生有一个属性办公室.
我想,如果有患者p,可以说p.office并访问p’s Doctor的办公室.
我总是可以写一个方法
class Patient
belongs_to :doctor
def office
self.doctor.office
end
但有没有更自动的方式将所有Doctor的属性方法暴露给患者?也许使用method_missing来拥有某种catch-all方法?
你可以使用
delegate.
class Patient
belongs_to :doctor
delegate :office,:to => :doctor
end
您可以在一个委托方法中拥有多个属性.
class Patient
belongs_to :doctor
delegate :office,:address,:to => :doctor
end
原文链接:https://www.f2er.com/ruby/270142.html