首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我运行rails服务器时,它显示了有关database.yml的错误。

当我运行rails服务器时,它显示了有关database.yml的错误。
EN

Stack Overflow用户
提问于 2013-10-18 06:05:17
回答 4查看 8.1K关注 0票数 1

我有ROR版本4.0.0和rubyVersion2.0。在创建项目应用程序之后,当我尝试运行rails服务器时,它将显示关于yml文件的错误。屏幕看起来像这样

代码语言:javascript
复制
    C:\Sites\app>rails s
=> Booting WEBrick
=> Rails 4.0.0 application starting in development on 
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/ap
plication/configuration.rb:113:in `rescue in database_configuration': YAML synta
x error occurred while parsing C:/Sites/app/config/database.yml. Please note tha
t YAML must be consistently indented using spaces. Tabs are not allowed. Error:
(<unknown>): could not find expected ':' while scanning a simple key at line 9 c
olumn 3 (RuntimeError)
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0
/lib/rails/application/configuration.rb:103:in `database_configuration'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activerecord-4
.0.0/lib/active_record/railtie.rb:174:in `block (2 levels) in <class:Railtie>'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-
4.0.0/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-
4.0.0/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-
4.0.0/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-
4.0.0/lib/active_support/lazy_load_hooks.rb:27:in `each'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activesupport-
4.0.0/lib/active_support/lazy_load_hooks.rb:27:in `on_load'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/activerecord-4
.0.0/lib/active_record/railtie.rb:173:in `block in <class:Railtie>'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0
/lib/rails/initializable.rb:30:in `instance_exec'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0
/lib/rails/initializable.rb:30:in `run'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0
/lib/rails/initializable.rb:55:in `block in run_initializers'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:150:in `block i
n tsort_each'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:183:in `block (
2 levels) in each_strongly_connected_component'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:219:in `each_st
rongly_connected_component_from'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:182:in `block i
n each_strongly_connected_component'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:180:in `each'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:180:in `each_st
rongly_connected_component'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/2.0.0/tsort.rb:148:in `tsort_e
ach'
        from C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/railties-4.0.0
/lib/rails/initializable.rb:54:in `run_initializers'

请帮我一下。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-18 08:08:09

您可以使用某种YAML Validator检查YAML文件。

这是您的有效YAML:

代码语言:javascript
复制
development: 
  adapter: postgresql
  database: postgres
  password: 191192
  pool: 5
  timeout: 5000
  username: postgres
production: 
  adapter: postgresql
  database: postgres
  pool: 5
  timeout: 5000
test: 
  adapter: postgresql
  database: postgres
  pool: 5
  timeout: 5000
票数 2
EN

Stack Overflow用户

发布于 2013-10-18 06:07:43

我猜您的database.yml中有制表符而不是空格。

在vim中快速修复:

代码语言:javascript
复制
:%s/\t/  /g
票数 0
EN

Stack Overflow用户

发布于 2013-10-18 06:15:25

如果您查看跟踪,它会准确地告诉您database.yml文件的错误所在。

代码语言:javascript
复制
"Please note that YAML must be consistently indented using spaces. Tabs are not allowed."

代码语言:javascript
复制
"could not find expected ':' while scanning a simple key at line 9 column 3"

因此,请确保使用的是空格,而不是制表符,并查看第9行中是否缺少冒号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19442688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档