В Rails я думал, что после запуска «Foo.all» загружается «models / foo.rb»? - PullRequest
0 голосов
/ 20 октября 2010

В 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 для pp, и он ничего не показывает, но после I require 'pp', тогда grep показывает это)

1 Ответ

2 голосов
/ 20 октября 2010

Зависит от того, какую среду вы используете.

Во время разработки требуется и загружается только тогда, когда вы хотите, и каждый раз перезагружаетесь. В производственном режиме требуется только один раз и загрузка один раз. Это загрузка при запуске вашего приложения. Все модели в приложении / модели загружены.

Конфигурация для этого: config.cache_classes = true

...