Ruby on rails Ruby父对象获得对子属性的访问权
所以我想知道是否有更好的方法来做到这一点。我有一个父类,它有三个1对1的关系,子类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
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个方法才能访问子属性都德!伙计!!!你把我吓了一跳你真的帮我节省了很多时间。传说中的高五扎波!!伙计!伙计!!!你把我吓了一跳你真的帮我节省了很多时间。传说中的高五扎波!!