39 votes

impossibilité étrange de demander config/boot après la mise à jour vers ruby 1.9.2

J'ai mis à jour mon ruby vers 1.9.2 et maintenant quand j'essaie de démarrer une application Rails 2.3.5 avec script/server j'obtiens cette erreur :

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- script/../config/boot (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from script/server:2:in `<main>'

Mais script/server:2 semble correct, et le fichier config/boot.rb existe au bon endroit.

82voto

UncleGene Points 1717

Beaucoup plus simple, ne nécessite pas la modification de tous les scripts :

Au lieu de :

script/server 

appeler :

./script/server

53voto

Ian Fleeton Points 917

Remplacer la ligne 2 de script/server par

require File.expand_path('../../config/boot', __FILE__)

fonctionne pour moi (tiré de Rails 3)

13voto

shingara Points 26980

C'est parce que ruby 1.9.2 n'ajoute pas le répertoire courant dans le LOAD_PATH.

Ajoutez ceci en haut de votre fichier script/server :

$: << File.dirname(__FILE__)

Ou dans votre cas :

$: << File.dirname(__FILE__) + '..'

1voto

Jing Points 101

J'ai rencontré exactement le même problème que celui décrit. Ubuntu 10.04 x64, Eclipse Helio, AptanaStudion2 avec RadRail, Ruby 1.9.2, Rails 2.3.5 cela ne fonctionne pas pour moi :

require File.expand_path('../../config/boot', __FILE__)

Cela fonctionne pour moi

require File.expand_path(__FILE__)+ '/../../config/boot'

0voto

blackrat Points 1

En $: << File.dirname(__File__) + '..' ne fonctionnera pas puisque vous obtiendrez un dir de

'script '

Essayez

$: << File.join(File.dirname(__FILE__),'..')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X