gpt4 book ai didi

ruby-on-rails - 强制 rails 自动加载类

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

我在/app/models 中的单个文件中有几个小类,类似于:

# /app/models/little_class.rb
class LittleClass; ...do stuff; end;
class AnotherLittleClass; ...do stuff; end;

Rails 似乎只适合在反射(reflect)类名的文件中自动加载类。因此,在文件外部引用 AnotherLittleClass 会引发如下所示的“未初始化常量”错误,直到引用 LittleClass 为止:

irb(main):001:0> AnotherLittleClass 
NameError: uninitialized constant AnotherLittleClass
irb(main):02:0> LittleClass
=> LittleClass
irb(main):03:0> AnotherLittleClass
=> LittleClass2

将它们拆分成单独的文件会很痛苦和困惑。有没有一种方法可以自动加载这些类,从而在不使用 LittleClass 的情况下引用 AnotherLittleClass 不会引发错误?

最佳答案

您可以将它们放入一个模块中并在此命名空间内使用它们SomeLittleClasses::LittleClass.do_something

# /app/models/some_little_classes.rb
module SomeLittleClasses

class LittleClass
def self.do_something
"Hello World!"
end
end

class AnotherLittleClass
def self.do_something
"Hello World!"
end
end

end

关于ruby-on-rails - 强制 rails 自动加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10057802/

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