Rails自动加载与Paths :: Root有关系吗?

问题描述

当Rails需要其模块之一时,将加载文件/module_name/lib/module_name.rb。该文件通常使用ActiveSupport::Autoload,以便a)autoload和b)eager_load gem的常量。

看起来自动加载过程已经掌握了rails-module / gem的路径。实际上,/rails/railties/lib/rails/application/configuration.rb定义了一些路径,用于通过Paths :: Root类自动加载应用程序的常量。

请参阅:https://github.com/rails/rails/blob/46a22ceaff1c8dc8e5a8f5acf6bb9865e46b7768/railties/lib/rails/application/configuration.rb#L208

但是没有Rails模块的railtie-instance或/rails-module/lib/rails_module.rb文件都以此方式设置路径。

也不能以其他方式使用ActiveSupport::Dependencies.autoload_paths

这是否意味着ActiveSupport::AutoloadActiveSupport::Dependencies方法autoloadeager_autoload纯粹是猜测要在其中找到模块常量的文件的路径?

如果是...

rails模块中确实有许多文件与要自动加载的模块常量同名。

另一方面,与模块常量名称没有明显关系的文件夹又是什么。

另外,我猜想模块可以在文件中的“传递”中定义,而该文件名称与要自动加载的模块的名称不同。

我想这个问题已经回答了,您能指出合适的提示吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...