2012-12-04 14 views
9

Ich aktualisiere derzeit meine Anwendung von Schienen 2.3 zu 3.0 und Rubin 1.9.3. Nachdem ich die erforderlichen Änderungen vorgenommen und versucht habe, auf die Startseite meiner App zuzugreifen, erhalte ich den folgenden Fehler. nein 73 von en.ymlSchienen 3 yaml Fehler

order: [:year, :month, :day] 

enthält Kann mir jemand helfen, dies bei der Festsetzung http://pastie.org/5478123

Line:

Psych::SyntaxError ((/apps/myapp/config/locales/en.yml): did not find expected node  content while parsing a flow node at line 73 column 14): 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:203:in `parse' 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:203:in `parse_stream' 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:151:in `parse' 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:127:in `load' 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:297:in `block in load_file' 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:297:in `open' 
/usr/local/rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/psych.rb:297:in `load_file' 

Der vollständige Stack-Trace finden Sie unter. Momentan läuft myapp auf Rails 2.3.14 und ruby ​​1.8.7

Antwort

15

Ruby 1.9.3 verwendet Psych als YAML-Parser, und 1.8.7 benutzte den älteren und veralteten Syck. Das Problem, das Sie sehen, ist eine known issue in LibYaml, die Bibliothek, auf der Psych aufgebaut ist, und liegt an einer Mehrdeutigkeit, die entsteht, wenn Doppelpunkte im Flusskontext erlaubt sind.

Es gibt eine Ruby bug darüber.

Die Lösung ist Ihren Yaml zu ändern, um den Block Kontext zu verwenden:

order: 
    - :year 
    - :month 
    - :day 

Rails hat changed the template that generated this Yaml to avoid this bug.