【问题标题】:Eagerloading files in directories inside the app folder in Rails 3. How is it done?在 Rails 3 中的 app 文件夹内的目录中急切加载文件。它是如何完成的?
【发布时间】:2016-03-16 14:20:02
【问题描述】:

我读到了:

如果直接在app/下添加目录

什么都不做。此目录中的所有文件都在生产中预先加载,并且 开发中默认懒加载。

如果你在 app/something/ 下添加一个目录

(例如 app/models/concerns/、app/models/products/)

问:我想在我的新目录中命名模块和类吗?为了 app/models/products/ 中的示例,您需要将类包装在 模块产品。

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

如果答案是否定的,请添加 config.autoload_paths += %W( #{config.root}/app/models/products)

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

  1. 仅当该文件的内容包装在以该文件夹命名的模块(folder_nest 模块)中时,才将该文件加载到应用文件夹中的文件夹(名为folder_nest)中。这是怎么发生的?

必须有一些逻辑说:“如果应用程序内部的东西是文件,则立即加载它。如果是文件夹,则仅在包装在以所述文件夹命名的模块中时才加载所述文件夹的内容。”

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

另外,配置/初始化程序是否急切加载?这个逻辑在哪里?

【问题讨论】:

    标签: ruby-on-rails-3


    【解决方案1】:

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

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

    subl `bundle show rails`
    

    然后使用文本编辑器(在这种情况下是sublime,textmate也可以)+搜索,只需阅读代码。有时我会在其中插入“puts”语句以确保我正在阅读正确的代码并运行它只是为了确定。

    您可以通过这种方式回答您自己关于初始化序列等的大部分问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多