gpt4 book ai didi

ruby-on-rails - 自动创建类的包含模块

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

在 Rails 中,您可以在 app/foo/bar.rb 下创建模型, bar.rb 包含:

class Foo::Bar
def some_method
puts "I work fine"
end
end

如果您尝试在纯 ruby​​ 应用程序中执行此操作,您将获得 NameError: uninitialized constant Foo除非你已经初始化了一个模块 Foo .

Rails 做了什么允许它在不首先初始化类的包含模块的情况下创建类?是否可以通过 activesupport 之类的方式导入此行为,还是让我们自己实现?

最佳答案

Rails 修改 Class 类以包含 const_missing使用未定义类时调用的方法。然后它会加载一些东西来尝试加载请求的类。

ActiveSupport 中的实现在 lib/active_support/dependencies.rb 中。

关于ruby-on-rails - 自动创建类的包含模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15467313/

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