2010-11-24 19 views
1

Je reçois cette erreur lorsque j'essaie de démarrer le serveur.config.logger et config.paths.log dans Rails 3

logger.rb:541:in `exist?': can't convert Rails::Paths::Path into String (TypeError) 

Ceci est le code dans mon développement.rb.

require 'log_formatter' 
config.logger = Logger.new(config.paths.log.first) 
config.logger.formatter = LogFormatter.new 
config.logger.level = Logger::DEBUG 

J'ai essayé d'ajouter .to_s, mais il ne sert à rien.

Google ne vous aide pas non plus.

Répondre

1

Essayez

config.logger = Logger.new(config.paths.log.first.path)

http://api.rubyonrails.org/classes/Rails/Paths/Path.html

+0

Non. Il échoue avec le même message. – DarkFox

+0

Le problème, comme indiqué par le message d'erreur, est que la méthode 'existe?' Attend une chaîne, et vous ne passez pas dans une chaîne, mais un 'Rails :: Paths :: Path'. Qu'est-ce que votre appel à 'to_s' montrer? Y a-t-il beaucoup de chemins stockés dans le 'Rails :: Paths :: Path'? – Jeremy

+0

Quand je fais to_s, je reçois toujours le même message ... Je soupçonne cependant que c'est quelque chose de complètement différent. – DarkFox

9

Dans Rails 3.1.1 l'ancienne syntaxe a été dépréciée. Vous devriez maintenant utiliser:

config.paths['log'].first