Rails lib comprend
J'ai une curieuse question concernant les modules définis dans le dossier lib
J'ai deux fichiers
#lib/authentication.rb
module Authentication
end
#lib/test_module.rb
module TestModule
end
Dans mon contrôleur d'application, j'ai
class ApplicationController < ActionController::Base
include Authentication
include TestModule
end
Le Module d'Authentification se charge correctement mais le TestModule ne pas
- Je obtenir "uninitialized constant ApplicationController::TestModule"
Je suis perplexe... quelqu'un?
EDIT: quelqu'un sait-il où je pourrais regarder pour déboguer ce?
Question idiote, mais avez-vous redémarré votre serveur? Si non, ne le redémarrage du processus de résoudre ce problème?
yup j'ai essayer de redémarrer. Le serveur ne démarre pas après.
yup j'ai essayer de redémarrer. Le serveur ne démarre pas après.
OriginalL'auteur stellard | 2010-01-12
Vous devez vous connecter pour publier un commentaire.
Ajoutant
require 'lib/test_module'
en haut de votre ApplicationController fichier peut aiderÊtes-vous sûr que le fichier est au bon endroit?? Depuis l'exiger de déclaration est impossible de le trouver...
J'étais sûr qu'il était au bon endroit, mais j'ai vérifié à nouveau. Pour une raison quelconque, le nom de fichier a été test_module.r?b. C'est bizarre, car il affiche dans TextMate(où j'ai créé le fichier).rb. J'ai renommé le fichier et ça a fonctionné. Je vous remercie pour votre temps, j'étais tellement intrigué j'avais besoin d'un autre regard sur elle.
OriginalL'auteur Veger
De Rails 3, assurez-vous d'ajouter le
lib
répertoireconfig.autoload_paths
dansconfig/application.rb
, de sorte que le fichier contenant le module de lecture et le module est chargé.Look ici pour plus d'info sur le présent et le chargement des sous-répertoires.
Aussi, soi-disant "vous ne devriez pas utiliser exiger dans une application rails, car il empêche ActiveSupport::Dépendances à partir [de l'onu]chargement de ce code correctement".
OriginalL'auteur user664833