2010-11-24 4 views
1

Ich bekomme diesen Fehler beim Versuch, den Server zu starten.config.logger und config.paths.log in Rails 3

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

Dies ist der Code in meiner development.rb.

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

Ich habe versucht, .to_s hinzuzufügen, aber es ist nutzlos.

Google ist auch keine Hilfe.

Antwort

1

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

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

+0

Nein. Es schlägt mit der gleichen Nachricht fehl. – DarkFox

+0

Das Problem, wie von der Fehlermeldung angegeben, ist, dass die Methode 'exist?' Eine Zeichenfolge erwartet, und Sie nicht eine Zeichenfolge übergeben, sondern eine 'Rails :: Paths :: Path'. Was zeigt dein Ruf an 'to_s'? Sind viele Pfade in den 'Rails :: Paths :: Path' gespeichert? – Jeremy

+0

Wenn ich to_s mache, bekomme ich immer noch die selbe Nachricht ... ich vermute aber, dass es etwas ganz anderes ist. – DarkFox

9

In Rails 3.1.1 die alte Syntax veraltet ist Versuchen. Sie sollten jetzt verwenden:

config.paths['log'].first