ruby-on-rails - 访问父对象属性的 "rails way"是什么?

标签 ruby-on-rails ruby activerecord model

假设我有一个模型 Doctor 和一个模型 PatientPatient belongs_to a Doctor

一个 Doctor 有一个属性 office

我想,给定一个Patient p,能够说p.office并访问p的office 的医生。

我总是可以写一个方法

class Patient
    belongs_to :doctor
    def office
        self.doctor.office
    end

但是有没有一种更自动的方法可以将 Doctor 的所有属性方法公开给 Patient?也许使用 method_missing 来获得某种包罗万象的方法?

最佳答案

你可以使用 delegate .

class Patient
    belongs_to :doctor
    delegate :office, :to => :doctor
end

您可以在一个委托(delegate)方法中拥有多个属性。

class Patient
    belongs_to :doctor
    delegate :office, :address, :to => :doctor
end

关于ruby-on-rails - 访问父对象属性的 "rails way"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878792/

相关文章:

ruby-on-rails - rake 分贝 :migrate table already exist

mysql - 查找记录时数据库编码错误

ruby-on-rails - 如何使用 'memcached' 在面向服务的体系结构中处理用户身份验证?

ruby-on-rails - 更好的 Rails 代码用于更新或创建子句?

ruby-on-rails - 在 Ctrl+C 中断的情况下,如何在 Rake 任务中使用 ActiveRecord 事务进行回滚

mysql - 删除由多个属性唯一标识的重复记录/对象

ruby-on-rails - Rails 3.2 和 yui 压缩器

ruby - 为什么我不能将函数参数压入数组?

ruby - 在 sqlite 中插入多行(带有自动递增的 ID 号)

mysql - 使用 'having' 的 ActiveRecord Relation 的 Rails update_all 不起作用