2010-10-20 18 views
0

Dans Rails, si je crée un échafaudage foo, et faire rake db:migrate, puis maintenantDans Rails, je pensais que lorsque "Foo.all" est exécuté, "models/foo.rb" est chargé?

app/models/foo.rb 

est créé. Donc, si je vais à

script/console (or rails console for Rails 3) 

et tapez

$".grep /foo/i 

est vide. $" sont les fichiers chargés. Donc, foo.rb n'est pas encore chargé.

Maintenant, je fais un Foo.all, et foo.rb devrait être chargé maintenant. Mais quand je répète le grep, il montre toujours tableau vide - pourquoi?

(Par contre, je peux grep pour pp, et il ne montre rien, mais après que je require 'pp', le grep le montre)

Répondre

2

Il est dépendez que vous utilisez environement.

En temps de développement, il est nécessaire et charger seulement quand vous voulez et rechargez chaque fois. En mode production, une seule fois et une seule charge. C'est la charge au démarrage de votre application. Tous les modèles sur l'application/les modèles sont chargés.

La configuration de le faire est: config.cache_classes = true

+0

wow, une réponse précise et exacte dans les 4 minutes à 4h50 ... oh vous êtes en France ... Avez-vous utilisé Rails depuis longtemps de savoir ces détails? –

+0

J'utilise des rails depuis 3 ans maintenant. Vous pouvez voir mon compte github: http://github.com/shingara pour plus d'informations sur mon code. – shingara