Ruby on rails 3 正在Rails 3中的应用程序文件夹内的目录中加载文件。怎么做的?

Ruby on rails 3 正在Rails 3中的应用程序文件夹内的目录中加载文件。怎么做的?,ruby-on-rails-3,Ruby On Rails 3,我读到: 如果您直接在应用程序下添加目录/ 什么也不做。此目录中的所有文件都将加载到生产和应用程序中 默认情况下,在开发中加载延迟 如果您在app/something/下添加目录 (例如应用程序/模型/关注点/应用程序/模型/产品/) 问:我想在我的新目录中命名模块和类吗?对于 示例在app/models/products/中,您需要用 模块产品 如果答案是肯定的,什么也不做。它会起作用的 如果答案为否,请添加config.autoload_路径+=%W( #{config.root}/app/

我读到:

如果您直接在应用程序下添加目录/

什么也不做。此目录中的所有文件都将加载到生产和应用程序中 默认情况下,在开发中加载延迟

如果您在app/something/下添加目录

(例如应用程序/模型/关注点/应用程序/模型/产品/)

问:我想在我的新目录中命名模块和类吗?对于 示例在app/models/products/中,您需要用 模块产品

如果答案是肯定的,什么也不做。它会起作用的

如果答案为否,请添加config.autoload_路径+=%W( #{config.root}/app/models/products)

我想知道Rails是如何做到这一点的。如何:

  • 仅当文件内容包装在以该文件夹(文件夹嵌套模块)命名的模块中时,才将文件加载到应用程序文件夹中的文件夹(名为文件夹嵌套模块)中。这是怎么发生的
  • 一定有这样的逻辑:“如果应用程序中的东西是一个文件,那么立即加载它。如果它是一个文件夹,只有当它包装在以该文件夹命名的模块中时,才加载该文件夹的内容。”

    有人知道这个逻辑在哪里吗?如何阅读Rails源代码


    此外,配置/初始值设定项是否急切地加载?逻辑在哪里?

    好吧,看起来你有很多问题,最好用一个问题“我如何阅读Rails源代码”来回答

    就我个人而言,我从命令行执行以下操作:

    subl `bundle show rails`
    
    然后使用文本编辑器(在本例中为升华,textmate也适用)+搜索,只需阅读代码即可。有时我会在其中插入“puts”语句,以确保我阅读了正确的代码,并运行它以确保正确

    通过这种方式,您可以回答大多数关于初始化顺序的问题