Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby父对象获得对子属性的访问权_Ruby On Rails_Ruby_Inheritance - Fatal编程技术网

Ruby on rails Ruby父对象获得对子属性的访问权

Ruby on rails Ruby父对象获得对子属性的访问权,ruby-on-rails,ruby,inheritance,Ruby On Rails,Ruby,Inheritance,所以我想知道是否有更好的方法来做到这一点。我有一个父类,它有三个1对1的关系,子类 class Parent has_one :child_one has_one :child_two has_one :child_three ... end 然后在每个子对象中,我声明所属:父对象,现在ChildOne有属性1,属性2,…,属性30等 我使用的gem使用yaml来构建计算,但它只能访问父类的表或模型。这意味着我需要从ChildOne类中提取所有属性,我必须这样做 def calcu

所以我想知道是否有更好的方法来做到这一点。我有一个父类,它有三个1对1的关系,子类

class Parent
  has_one :child_one
  has_one :child_two
  has_one :child_three
...
end
然后在每个子对象中,我声明
所属:父对象
,现在ChildOne有
属性1
属性2
属性30

我使用的gem使用yaml来构建计算,但它只能访问父类的表或模型。这意味着我需要从ChildOne类中提取所有属性,我必须这样做

def calculation_one
  cal_one = self.child_one.attribute1
end
继续前进。这意味着我会有一个模型,它是一个非常胖的模型,只是连接了孩子们的属性。有更好的方法吗

更新

我要寻找的是一种基本上
attr\u访问器
子类的方法

class Parent
  attr_accessor :child_one, :attribute1
end

person = Parent.new
person.attribute1 = "awesome"
person.attribute1 # => "awesome"

我认为您正在寻找rails中的
Delegate
模块:您可以调用
Delegate
,让相关模型响应这样的方法调用:

class Parent < ActiveRecord::Base
  has_one :child_one
  delegate :attribute1, to: :child_one
end
类父级

完整文档:

我认为您正在寻找rails中的
委托
模块:您可以调用
委托
,让相关模型响应这样的方法调用:

class Parent < ActiveRecord::Base
  has_one :child_one
  delegate :attribute1, to: :child_one
end
类父级

完整文档:

是否要从父对象访问子元素?是的,可以从父对象访问
attribute1
,而无需创建访问方法。因为我需要写出将近90个方法才能访问子属性你想从父对象访问子元素吗?是的,可以从父类访问
attribute1
,而不必创建方法来访问它。因为我需要写出将近90个方法才能访问子属性都德!伙计!!!你把我吓了一跳你真的帮我节省了很多时间。传说中的高五扎波!!伙计!伙计!!!你把我吓了一跳你真的帮我节省了很多时间。传说中的高五扎波!!