Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 动态类加载:是否有;方法“U缺失”;对于Ruby中的类?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 动态类加载:是否有;方法“U缺失”;对于Ruby中的类?

Ruby on rails 动态类加载:是否有;方法“U缺失”;对于Ruby中的类?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我正在处理的Rails应用程序中,我有一个与单表继承模型“Node”相关的模型“Type”:Node的任何可能的子类都被定义为types表中的一个类型 现在可以在初始值设定项中加载所有类,但我只想在需要子类时加载它们 我能想到的最好的解决方案是对一个未初始化的常量进行回退,以检查该常量是否可以表示应用程序中的类,类似于方法_missing所做的事情 我想要一些关于如何和在何处定义此逻辑的建议,或者是否有更好的解决方案。也许您可以解救一个未定义的常量错误并加载/创建类。缺少模块#常量: 我想你

在我正在处理的Rails应用程序中,我有一个与单表继承模型“Node”相关的模型“Type”:Node的任何可能的子类都被定义为types表中的一个类型

现在可以在初始值设定项中加载所有类,但我只想在需要子类时加载它们

我能想到的最好的解决方案是对一个未初始化的常量进行回退,以检查该常量是否可以表示应用程序中的类,类似于方法_missing所做的事情


我想要一些关于如何和在何处定义此逻辑的建议,或者是否有更好的解决方案。

也许您可以
解救一个未定义的常量错误并加载/创建类。

缺少
模块#常量


我想你可以(ab)根据自己的需要使用它。

有一个const_missing方法:它的工作原理类似于method_missing,但它是关于常量的


我不知道这是否是新的,但我认为值得添加。可以将method missing用作类方法

class Example
  def method_missing(method_name, *arguments, &block)
    puts 'needs this instance method'
  end

  def self.method_missing(method_name, *arguments, &block)
    puts 'needs this class method'
  end
end

行动!就在几秒钟后,我发布了相同的答案:PI接受你说的(ab)使用,因为这远远不是最佳实践?:)无论如何,任何建议都是非常受欢迎和感激的。不管怎样,这正是我想要的,非常感谢!哦,我没那么说,它更多的是一个小刺刀,在所有的元编程之间的边界使用和滥用的时间很多。通常情况下,我是……的罪魁祸首;-)