![]() |
1
252
As of Rails 2.3.9
,中有一个设置
从application.rb:
|
![]() |
2
200
资料来源: Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading 请注意,lib文件夹中包含的文件仅在服务器启动时加载。如果您想轻松地自动读取这些文件,请阅读: Rails 3 Quicktip: Auto reload lib folders in development mode . 请注意,这并不适用于生产环境,因为永久重新加载会降低机器的速度。 |
![]() |
3
84
自动加载的魔力
因此,当从子目录加载内容时,有一个gotcha或约定你应该知道。有时候Ruby/Rails的魔力(这次主要是Rails)会让人很难理解为什么会发生这样的事情。只有当模块名与父目录名对应时,才会加载自动加载路径中声明的任何模块。所以万一你想
另外,我觉得有必要再补充一件重要的事情。最近,每当我想在lib目录中有需要自动加载的东西时,我往往会开始想,如果这是我为这个项目专门开发的东西(通常是这样的,有朝一日它可能会变成许多项目中使用的“静态”代码片段或git子模块等)。。在这种情况下,它肯定应该在lib文件夹中),那么它的位置可能根本就不在lib文件夹中。也许它应该在app文件夹下的一个子文件夹里。我有种感觉,这是rails新的做事方式。很明显,同样的魔力也在工作,无论你把你的东西放在什么自动加载路径上,这样对这些东西都有好处。不管怎样,这只是我对这个问题的看法。你可以不同意
正如severin在他的评论中指出的,核心“自动加载模块机制”当然是Ruby的一部分,但自动加载路径的东西不是。你不需要栏杆
|
![]() |
4
41
有关详细信息,请参阅: https://stackoverflow.com/a/6797707/445908 |
![]() |
5
28
非常相似,但我觉得这更优雅一点:
|
![]() |
6
18
在我的例子中,我试图直接在lib dir下加载一个文件。 在application.rb中。。。
不起作用,即使在控制台里
rails完美地加载了文件。 我还是个笨蛋,我不知道为什么这么做有效,但确实有效。如果有人愿意向我解释,我将不胜感激:我希望这对任何人都有帮助。 |
![]() |
7
7
|
![]() |
8
5
config.autoload\u路径对我不起作用。我用另一种方法解决它
|
![]() |
9
5
截至
请检查这个 GitHub Discussion Link 也。 |
![]() |
10
4
在model.rb文件的顶部。 |
![]() |
11
2
正确拼写文件名。 说真的。我和一个类争了一个小时,因为这个类是Governance::ArchitectureBoard,文件位于lib/Governance/architecture\u baord.rb(在“board”中转置了O和a)
|
![]() |
12
1
从lib加载时可能出现问题的原因有很多-请参阅此处了解详细信息- http://www.williambharding.com/blog/technology/rails-3-autoload-modules-and-classes-in-production/
|
![]() |
cluster1 · 采取独立的新行动的好处是什么? 6 月前 |
![]() |
Robert · 使用JSON或哈希时,将NULL替换为NIL 6 月前 |
![]() |
Fred Willmore · Rails控制器不呈现任何模板 1 年前 |
![]() |
Diogo Amaral · 实现API请求的正确方式 1 年前 |
![]() |
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
![]() |
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
Flávio · 基于另外两个生成数组 1 年前 |