gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 从父类中为每个子类调用一个方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:41 25 4
gpt4 key购买 nike

我正在使用具有以下类结构的 Ruby on Rails:

class Parent
def self.parse
self.subclasses.each(&:parse) # how to fix this?
end
end

class Child1 < Parent
def self.parse
# ...
end
end

class Child2 < Parent
def self.parse
# ...
end
end

我想做这样的事情:

Parent.parse
=> Child1.parse and Child2.parse

但实际上子类没有加载,所以 subclasses 方法给出空数组。

有没有简单的方法来完成这个非常常见的任务?

最佳答案

发生这种情况是因为 rails 自动加载类:Parent 不知道它的子类,直到它们在某处使用或需要。

只需从 Parent 类手动要求它们:

# parent.rb
require 'child1'
require 'child2'

class Parent
def self.parse
self.subclasses.each(&:parse) # how to fix this?
end
end

关于ruby-on-rails - Ruby on Rails - 从父类中为每个子类调用一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33234757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com