2010-09-28 3 views
7

J'ai un simple fichier config.ru pour mon application Sinatra.L'application Rack Passenger 'ne peut pas inférer basepath'

require 'sinatra' 
require 'app' 

run Sinatra::Application 

Cependant, Passager échoue avec l'erreur no such file to load -- app. J'ai essayé d'utiliser la méthode require_relative mais cela provoque maintenant l'erreur cannot infer basepath.

J'utilise actuellement le très hacky require File.join(File.dirname(__FILE__), 'app'), ce qui est juste horrible et je n'ai pas envie de le faire chaque fois que je veux avoir besoin d'un fichier.

Y at-il une raison pour laquelle Ruby n'agit pas comme d'habitude?

+0

Cette question ne serait-elle pas plus appropriée sur notre site jumeau stackoverflow.com, où les questions relatives au codage sont habituellement posées? Je peux le déplacer pour vous si vous le souhaitez, faites le moi savoir. – Chopper3

+0

Oups. Oui, veuillez le déplacer. – fatnic

Répondre

1

Dans ruby ​​1.9.2 le répertoire courant n'est plus dans LOAD_PATH.

Alors, que faire si votre LOAD_PATH et ajouter current_directory si n'est pas fait.

+2

Je ne le savais pas. Intéressant. Cependant, je ne comprends toujours pas pourquoi 'require_relative' ne fonctionnerait pas. – fatnic

+2

Ou je peux juste "exiger" ./app "' qui semble plus facile. – fatnic

+0

Oui, c'est la même chose à propos du répertoire current_dans LOAD_PATH – shingara