Ruby-on-rails (<unknown>): 扫描第 3 行第 1 列的简单键时找不到预期的 ':' (Psych::SyntaxError)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32441291/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
(<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1 (Psych::SyntaxError)
提问by Jordan Deutsch
I am trying to run a bundle install on a rails project pulled from git. When I run the bundle install I get the following error:
我正在尝试在从 git 中提取的 rails 项目上运行捆绑安装。当我运行 bundle install 时,出现以下错误:
/Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:370:in `parse': (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1 (Psych::SyntaxError)
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:370:in `parse_stream'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:318:in `parse'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/psych.rb:245:in `load'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/config_file.rb:333:in `load_file'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/config_file.rb:198:in `initialize'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/gem_runner.rb:74:in `new'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/gem_runner.rb:74:in `do_configuration'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/gem_runner.rb:39:in `run'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.1/bin/gem:21:in `<main>'
This is my Gemfile:
这是我的 Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.3'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
#for Authentification
gem 'devise'
#for image management
gem 'paperclip', :git => 'git://github.com/thoughtbot/paperclip.git'
gem 'aws-sdk-v1'
gem 'aws-s3'
group :development do
gem 'better_errors'
end
group :development, :test do
gem 'dotenv-rails'
end
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end
After some digging I thought it might be an issue with rvm as I tried pulling an old project off git and was still unable to run the bundle install. I also tried copying a project locally and running the install and starting a new project all without success.
经过一番挖掘,我认为这可能是 rvm 的问题,因为我尝试从 git 中拉出一个旧项目,但仍然无法运行捆绑安装。我还尝试在本地复制一个项目并运行安装并启动一个新项目,但都没有成功。
After reinstalling rvm I ran rvm use ruby --install --defaultand got the following error (similar to above)
重新安装 rvm 后,我运行rvm use ruby --install --default并收到以下错误(类似于上面)
/Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/psych.rb:370:in `parse': (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1 (Psych::SyntaxError)
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/psych.rb:370:in `parse_stream'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/psych.rb:318:in `parse'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/psych.rb:245:in `load'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/config_file.rb:333:in `load_file'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/config_file.rb:198:in `initialize'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/gem_runner.rb:74:in `new'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/gem_runner.rb:74:in `do_configuration'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/gem_runner.rb:39:in `run'
from /Users/jordandeutsch/.rvm/rubies/ruby-2.2.3/bin/gem:25:in `<main>'
Essentially I cannot begin a new rails project on the computer. Any insight would be appreciated.
基本上我无法在计算机上开始一个新的 Rails 项目。任何见解将不胜感激。
回答by ellen
This error usually comes out if you have syntax errors in the .yml files. Have a look if you can find any mistake in there.
如果 .yml 文件中有语法错误,通常会出现此错误。看看你是否能发现任何错误。
You can also try and remove the .gemrc file from the home directory. It could be that the error is in there.
您也可以尝试从主目录中删除 .gemrc 文件。可能是错误在那里。
回答by alex_milhouse
I had this issue recently had this issue. My issue:
我有这个问题最近有这个问题。我的问题:
.application.yml
.application.yml
default: &default
FOO_KEY: 'XXXXX'
development:
<<: *default
test:
<<: *default
Worked fine.
工作得很好。
default: &default
FOO_KEY:?'asdf'
BAR_KEY:?'XXXXXXXXXXX'
FOO_BAR: 'XXXXXXXXXXXX'
development:
<<: *default
test:
<<: *default
Did not work. What I tried:
不工作。我试过的:
- Rewrite application.yml
- Remove GEMFILE.lock and reinstall all gems
- change the values and names of keys
- check all configs for typos
- 重写 application.yml
- 删除 GEMFILE.lock 并重新安装所有 gems
- 更改键的值和名称
- 检查所有配置是否有错别字
None of these helped fix the issue. So as any good engineer I burned it to the ground. I cloned my project into a new directory and rewrote the application.yml and that worked. Both repos are on the same branch and on the same changeset.
这些都没有帮助解决问题。所以作为任何优秀的工程师,我把它烧毁了。我将我的项目克隆到一个新目录中并重写了 application.yml 并且工作正常。两个存储库都在同一个分支和同一个变更集上。
回答by Abhishek
In case you still are looking for answers (after patching up your database.yml several times), try to check other ymlfiles that are loaded upon initialization of the application, like secrets.yml, sidekiq.yml, webpacker.ymlor so.
如果您仍在寻找答案(在多次修补 database.yml 之后),请尝试检查yml在应用程序初始化时加载的其他文件,例如secrets.yml、sidekiq.yml、 等webpacker.yml。
In my case, it was throwing error like:
就我而言,它抛出了如下错误:
/home/abhishek/.rvm/gems/ruby-2.3.7/gems/railties-4.2.10/lib/rails/application/configuration.rb:115:in `rescue in database_configuration': YAML syntax error occurred while parsing /home/abhishek/Workspace/clearfunds/clearfunds-web/config/database.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Error: (<unknown>): could not find expected ':' while scanning a simple key at line 19 column 7 (RuntimeError)
But database.ymlwas intact. The problem was in secrets.yml. Had used tabindentation in a couple of places.
但是database.yml完好无损。问题出在secrets.yml. tab在几个地方使用了缩进。
回答by Maggie Rose
For others who get this error, I got this error and it turned out there was non visible unicode characters that were creating conflicts. I found a website that shows where these characters are: https://www.soscisurvey.de/tools/view-chars.php
对于其他收到此错误的人,我收到了此错误,结果发现是不可见的 unicode 字符造成了冲突。我找到了一个显示这些字符在哪里的网站:https: //www.soscisurvey.de/tools/view-chars.php

