0

在 Rails 中,如果我创建一个脚手架foo,然后做rake db:migrate,那么现在

app/models/foo.rb

被建造。所以如果我去

script/console   (or rails console for Rails 3)

并输入

$".grep /foo/i

它是空的。 $"是加载的文件。所以 foo.rb 还没有加载。

现在我做了一个Foo.all,现在应该加载 foo.rb。

但是当我重复时grep,它仍然显示空数组——这是为什么呢?

(另一方面,我可以 grep for pp,它什么也没显示,但是在 Irequire 'pp'之后,grep 会显示它)

4

1 回答 1

2

这取决于您使用的环境。

在开发时,它只在您需要时才需要和加载,并且每次都重新加载。在生产模式下,它只需要一次并加载一次。它在您的应用程序启动时加载。应用程序/模型上的所有模型都已加载。

这样做的配置是:config.cache_classes = true

于 2010-10-20T11:49:45.630 回答