2011-04-30 95 views
7

我不知道我做错了什么。我尝试运行'rails c',但它只是给我一个错误。它在10分钟前工作。 :\Rails 3 - '无法解析Yaml'

C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:in `parse': couldn't parse YAML at line 2 
column 12 (Psych::SyntaxError) 
     from C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:in `parse_stream' 
     from C:/Ruby192/lib/ruby/1.9.1/psych.rb:119:in `parse' 
     from C:/Ruby192/lib/ruby/1.9.1/psych.rb:106:in `load' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/applic 
ation/configuration.rb:88:in `database_configuration' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_r 
ecord/railtie.rb:58:in `block (2 levels) in <class:Railtie>' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ 
support/lazy_load_hooks.rb:36:in `instance_eval' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ 
support/lazy_load_hooks.rb:36:in `execute_hook' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ 
support/lazy_load_hooks.rb:43:in `block in run_load_hooks' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ 
support/lazy_load_hooks.rb:42:in `each' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_ 
support/lazy_load_hooks.rb:42:in `run_load_hooks' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_r 
ecord/base.rb:1904:in `<top (required)>' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_r 
ecord/railtie.rb:32:in `block in <class:Railtie>' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/railti 
e.rb:180:in `call' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/railti 
e.rb:180:in `each' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/railti 
e.rb:180:in `load_console' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/applic 
ation.rb:154:in `block in load_console' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/applic 
ation/railties.rb:11:in `each' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/applic 
ation/railties.rb:11:in `all' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/applic 
ation.rb:154:in `load_console' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/comman 
ds/console.rb:26:in `start' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/comman 
ds/console.rb:8:in `start' 
     from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/comman 
ds.rb:23:in `<top (required)>' 
     from script/rails:6:in `require' 
     from script/rails:6:in `<main>' 
+0

你能告诉我们完整的回溯? – 2011-04-30 16:32:45

+0

当然,编辑了内容。 – Serodis 2011-04-30 16:39:37

+0

值得注意的一件事:我可以使用rails c作为另一个项目,所以它必须与我的项目相关。 – Serodis 2011-04-30 16:42:01

回答

6

堆栈转储提到了database_configuration,所以我会从你的database.yml文件开始。

from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application/configuration.rb:88:in `database_configuration' 
+1

你可以发布你的config/database.yml文件,它看起来像是该文件中存在问题。 - Rob Di Marco - 请将此作为回答发布,我想接受您的回答。 – Serodis 2011-05-05 12:26:57

8

尝试配置的开头添加此/的boot.rb

require 'yaml' 
YAML::ENGINE.yamler= 'syck' 
一切顺利

+0

由于我的yaml文件中有ü,所以对我有效。 – fivetwentysix 2011-07-26 12:03:44

7

为了记录,YAML不接受制表符作为缩进,它们必须是空格。更改制表符空格解决它对我来说^^

+0

这在Rails 3.1和Ruby 1.9.2.p280中为我解决了这个问题。不必使用'syck'yaml解析器。 – Jurgen 2011-10-17 22:44:42

0

我发出这个问题,在我的YAML文件之一没有引号*。

fr: 
    simple_form: 
    yes: Oui 
    no: Non 

    required: 
     text: required 
     mark: "*" 

希望它会有所帮助。 :)

2

“无法解析Yaml” 转到您的项目,并看到项目名称附近有一个!打开它并查看发生了哪个文件冲突。右键单击该文件,选择替换为最新来自Repository.Do对于所有文件,这改变了code.then运行它将工作的服务器。