Mongodb/mongoid rails 项目 -- "did not find expected key while parsing a block mapping at line 8 column 7 (Psych::SyntaxError)"
Mongodb/mongoid rails project -- "did not find expected key while parsing a block mapping at line 8 column 7 (Psych::SyntaxError)"
我有一个 rails 项目,它使用 mongodb/mongoid 和一些额外的 mongodb/mongoid gem:
ruby "2.3.1"
gem 'rails', '4.1.1'
gem 'mongoid'
当我尝试 运行 它时,出现异常:
$ bundle exec rails s
/home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
=> Booting Thin
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Exiting
/home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 8 column 7 (Psych::SyntaxError)
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/psych.rb:377:in `parse_stream'
from /home/alex/.gem/ruby/2.3.1/gems/mongoid-4.0.2/lib/mongoid/config/environment.rb:40:in `load_yaml'
from /home/alex/.gem/ruby/2.3.1/gems/mongoid-4.0.2/lib/mongoid/config.rb:83:in `load!'
# ............skipped
from /home/alex/.gem/ruby/2.3.1/gems/railties-4.1.1/lib/rails/initializable.rb:55:in `block in run_initializers'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component'
# .......... skipped
from /home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency'
from /home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require'
from /home/alex/projects/ruby/my_project_123/config.ru:3:in `block in <main>'
from /home/alex/.gem/ruby/2.3.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
# ............skipped
from /home/alex/.gem/ruby/2.3.1/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
什么会导致此异常?
Psych 是一个 YAML 解析器和发射器。该错误表明在您的 yml 文件中某处您在键值之前有额外的 spaces(或不足 spaces)。检查所有 yml 文件(例如:mongoid.yml
)的语法是否正确。您可以验证您的 yml 文件 Here。例如在下面的 YAML
key_one:
inner:
- value1
- value2
key_two:
inner:
- value1
- value2
第 7 行第 5 列在键值
之前有一个额外的 space
我有一个 rails 项目,它使用 mongodb/mongoid 和一些额外的 mongodb/mongoid gem:
ruby "2.3.1"
gem 'rails', '4.1.1'
gem 'mongoid'
当我尝试 运行 它时,出现异常:
$ bundle exec rails s
/home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
=> Booting Thin
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Exiting
/home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 8 column 7 (Psych::SyntaxError)
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/psych.rb:377:in `parse_stream'
from /home/alex/.gem/ruby/2.3.1/gems/mongoid-4.0.2/lib/mongoid/config/environment.rb:40:in `load_yaml'
from /home/alex/.gem/ruby/2.3.1/gems/mongoid-4.0.2/lib/mongoid/config.rb:83:in `load!'
# ............skipped
from /home/alex/.gem/ruby/2.3.1/gems/railties-4.1.1/lib/rails/initializable.rb:55:in `block in run_initializers'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /home/alex/.rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component'
# .......... skipped
from /home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency'
from /home/alex/.gem/ruby/2.3.1/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:247:in `require'
from /home/alex/projects/ruby/my_project_123/config.ru:3:in `block in <main>'
from /home/alex/.gem/ruby/2.3.1/gems/rack-1.5.2/lib/rack/builder.rb:55:in `instance_eval'
# ............skipped
from /home/alex/.gem/ruby/2.3.1/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
什么会导致此异常?
Psych 是一个 YAML 解析器和发射器。该错误表明在您的 yml 文件中某处您在键值之前有额外的 spaces(或不足 spaces)。检查所有 yml 文件(例如:mongoid.yml
)的语法是否正确。您可以验证您的 yml 文件 Here。例如在下面的 YAML
key_one:
inner:
- value1
- value2
key_two:
inner:
- value1
- value2
第 7 行第 5 列在键值
之前有一个额外的 space