В 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