On 5/28/07, Nicolas Delsaux <[EMAIL PROTECTED]> wrote: > > On 5/28/07, renaud morvan <[EMAIL PROTECTED]> wrote: > > > > > > Ce n'est pas exact. La seule garantie que t'offre le dossier lib par > > rapport au dossier dqsdqs/dqsdqs/dsqdqs c'est qu'il est chargé dans le > > load path, tout comme models. > > Donc, si je place mes fichiers dans l'un comme dans l'autre, ça > devrait marcher ... sauf que dans le second cas, ça ne marche pas pour > les migrations.
Alors c'est un problème dans le $LOAD_PATH, en tout cas il n'y a pas de mystère ca marche, c'est un problème dans ton application. Je me souviens d'un problème assez tordu en production où le rake deploy était incapable d'utiliser la version de rails freezé alors que l'appli l'utilisait sans problème et cela sans retourner d'erreur. La cause était particulièrement traitre, j'avais une rake task qui chargait un gems qui n'était pas sur le serveur de production ce qui fait que lors du chargement de l'environnement les $LOAD_PATH du freeze gems n'étaient pas utilisés (mais ca ne lancait aucune erreur...) et finalement ca chargait directement les gems de rails au lieu de la version freezé. La seule manière de traquer ce genre de comportement c'est de suivre l'évolution de la variable $LOAD_PATH. Le moindre problème dans une des tasks peut créer ce genre d'effet mais avant de perdre du temps à vérifier chaque fichier il faut s'assurer que c'est bien ce genre de problème. > > > > Ma préférence perso va à require_dependency qui check si la constante > > Toto existe et ne charge le fichier que si elle n'existe pas (en plus > > ca recharge le fichier à chaque requête en mode development). > > Effectivement, ça peut être pratique ... Je vais tester ça. > > > -la variable $LOAD_PATH qui contient l'ensemble des répertoires qui > > vont être recherché > > Variable d'environnement ? Elle n'est pas définie dans mon cas. > Variable globale de Ruby ? variable globale ruby, c'est à dire $LOAD_PATH > > A priori au vu de la maigre description du problème il y a fort à > > parier que c'est le cas 1 ou 2, le premier truc à vérifier c'est la > > variable globale $LOAD_PATH, le deuxième est de vérifier que le > > require n'a pas déjà eu lieu au mauvais endroit ce qui empèche le > > chargement ici. > > Pour LOAD_PATH, je ne sais pas. Pour le require, je viens de vérifier, > et il n'est pas fait ailleurs. Tu ne peux pas le savoir rien qu'en regardant le code car quand tu utilises Toto dans ton code rails catch les exceptions Constant Missing et lance automatiquement le require_dependency. Il faut regarder ce que retourne la fonction "require". Si ton naming est bien fait, tu n'as même pas besoin de require. --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED] -~----------~----~----~----~------~----~------~--~---
