В Rails я думал, что после запуска "Foo.all" загружается "models/foo.rb"?

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам