rails d'erreur, ne pouvait pas analyser YAML
Après la mise à jour des joyaux que j'ai obtenu ceci:
/home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:148:in `parse': couldn't parse YAML at line 182 column 9 (Psych::SyntaxError)
from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:148:in `parse_stream'
from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:119:in `parse'
from /home/megas/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/psych.rb:106:in `load'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:6:in `<module:LATEX>'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth/formatters/latex.rb:3:in `<top (required)>'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth.rb:21:in `require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/redcloth.rb:21:in `<top (required)>'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/case_sensitive_require/RedCloth.rb:6:in `require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/RedCloth-4.2.3/lib/case_sensitive_require/RedCloth.rb:6:in `<top (required)>'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `each'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:66:in `block in require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `each'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler/runtime.rb:55:in `require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.10/lib/bundler.rb:120:in `require'
from /home/megas/Work/railscasts/config/application.rb:10:in `<top (required)>'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/commands.rb:28:in `require'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/commands.rb:28:in `block in <top (required)>'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /home/megas/.rvm/gems/ruby-1.9.2-p136/gems/railties-3.0.3/lib/rails/commands.rb:27:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
ruby 1.9.2-p136
rails 3.0.3
Essayé de réinstaller gem RedCloth, n'a pas aider, système veut utiliser uniquement 4.2.3 version
Une idée de comment résoudre ce problème? Grâce
- Quel est le contenu du fichier YAML en question? Il dit qu'il y a une erreur de syntaxe, de sorte que le problème réside probablement dans votre fichier YAML.
- Je ne travaille pas avec n'importe quel fichier YAML, donc je suppose que c'est quelqu'un d'autre problème.
- quelle commande utilisez-vous? êtes-vous à l'aide de RVM?
- il arrive après que l'une des commandes de la console rails et les traverses serveur. oui, im en utilisant rvm
- voir à ce commit github.com/rails/rails/commit/dc94d81
- Vous devez marquer stackoverflow.com/questions/4980877/... comme acceptée...
- Pouvez également être sûr que vous avez tous les espaces pour l'indentation, pas d'onglets
Vous devez vous connecter pour publier un commentaire.
Vous avez invalide YAML code quelque part. Je veux dire non valide pour les Psy (la nouvelle ruby YAML analyseur).
Si vous ne pouvez (ou ne voulez pas) fixer votre YAML code, essayez de charger l'ancien YAML parser (syck), en ajoutant, en ce début de
config/boot.rb
C'est juste un "rapide et sale" réparer, je sais
Mon Rails 3 App aussi eu ce problème, parce que j'ai été en utilisant un localisée Fichier yaml pour les dates/heures.
Comme vous pouvez le voir dans ce commit https://github.com/rails/rails/commit/dc94d81
cela peut être facile "fixe" en plaçant le tableau sous la forme de plusieurs lignes.
Une légère tweak sur Paul Raupach de la réponse, qui, lorsqu'il est exécuté à partir d'un répertoire, trouve tout *.yml fichiers récursivement dans tous les sous-répertoires et teste le fichier. J'ai couru à partir de mon Rails root dir.
La cause a été décrit sur de nombreux endroits, et je vais résumer de nouveau.
Par défaut, deux yaml analyseur Psy est le nouveau, celui que vous devez utiliser. Syck est le vieux, ce n'est pas maintenu et en train de mourir, son actuellement utilisé comme tomber en arrière quand il n'y a pas de libyaml présents (non-systèmes linux en général).
La chose importante est vous avez quelques invalide yaml quelque part. Il est le plus probablement dans vos fichiers de traduction (j'ai eu non cotées chaînes démontrant avec les %). Juste essayez de charger tous vos fichiers yml avec YAML.load_file sur la boîte de production et vous verrez ce qui est le cassé.
J'ai eu ce problème parce que j'avais utilisé un onglet à la place des espaces
C'est meilleur pour fixer votre fichiers YAML
Ici est de savoir comment à l'aide de de la cisr de sorte que vous n'avez pas besoin de la console rails qui n'est probablement pas de travail:
vous obtiendrez une belle sortie vous indiquant où la question est:
Absolument résoudre votre yaml code n'est pas juste "masquer" le vrai problème en forçant YAMl l'utilisation de 'syck'. J'ai eu ce même problème et trouvé mal formé yml états dans mes fichiers de localisation. Si vous venez de la force en utilisant l'ancien analyseur alors vous ne serez pas obtenir les avantages de tous les travaux sur le nouveau parseur ailleurs dans votre projet.
Le problème avec la question d'origine était en RedCloth. Je vivais la même question, et tout simplement la mise à jour vers la version la plus récente de la RedCloth gem (Actuellement 4.2.7) correction du problème.
Les conseils ci-dessus à partir de Honza et FlyboyArt est bonne, et vous devriez corriger personnalisé YAML vous avez, mais avec RedCloth être aussi populaire car il est, la plupart des utilisateurs de trouver cette question qui utilisent aussi RedCloth doivent s'assurer que leurs GemFile a cette ligne ajoutée:
Pour d'autres, la lecture de cet, j'ai eu cette erreur après avoir fait une faute de frappe dans ma base de données de configuration -
/config/database.yml
C'est un bundler 1.0.10 question: les détails ici
Essayer juste pour downdate bundler
Ce qu'il fixe en ma cause était en effet mal formé YAML fichier de traduction dans:
Corrigé le YAML erreur et c'était très bien. 🙂
Pour ceux qui poursuivent cette question, j'ai juste trouvé que ma base de données.yml a été le déclenchement de cette erreur parce qu'il avait pas d'espace entre le mot de passe: mot-clé et le mot de passe. Presque invisible erreur, et avec une base de données.yml qui avait travaillé sans erreurs sur une version antérieure de rails.
J'ai eu ce problème. Mon problème est que j'avais un onglet supplémentaire dans ma base de données.fichier yml.
Je suis tombé sur ce que j'ai été en utilisant le r18n bibliothèque dans un
Sinatra
application que je suis en train de construire, et dans mon fichier de traduction, j'ai eu la suivante:qui fonctionnent très bien dans un ancien projet sous
Ruby 1.8.7
, mais qui n'était pas sousRuby 1.9.3
.Une réponse par @SB m'a donné l'idée j'avais besoin de travailler sur mon problème. La plus récente YAML a été rechigner à la
%1
. Certains rapide creuser et une expérience avecirb
et je sais maintenant que la version la plus récente de laYAML
analyseur vous oblige à mettre des guillemets autour des chaînes qui commencent par%1
, alors j'ai juste changé ma traductionet le tour est joué - méchant message d'erreur a disparu.
Pour mon cas, il n'est pas un Bundle en question: (Ruby 1.9 est supposé)
Plus d'infos ici: exiger "yaml" n'utilisez pas de psy par défaut
J'ai réussi à résoudre ce problème en installant gem psy à l'intérieur du groupe :le développement et l' :test.
J'ai eu le même problème avec ruby 1.9.2-p180 , va 1.9.2-p290 résolu ce problème pour moi
Si la réponse donnée par @Vicvega peut ou peut ne pas fonctionner (Ne pas le tester), il va à l'encontre de Rails et Ruby principe commun "Convention over configuration" et doit être traité avec soin (et encore plus dans le travail collaboratif),,, même si la "configuration" dans ce cas n'est pas grand
donc mon vote va (Si je pouvais voter) pour ceux qui ont proposé d'éliminer les erreurs de syntaxe dans les fichiers YAML.
maintenant... pour résoudre l'erreur, pour moi, c'était une sorte de newby erreur, je n'ai pas les paramètres régionaux de fichier qui j'avais défini par défaut dans
Config/application.rb
dans monConfig/locales
répertoireheureux de codage
Besoin de vérifier .yml fichiers pour l'erreur, j'ai trouvé le problème dans ma base de données.yml
J'ai eu un problème similaire avec un mal formé YAML fichier de traduction. Il a utilisé une variable avant de la définir. Le suivant est faux:
Il a dû être changé pour:
Puis il a commencé à travailler à nouveau.
J'ai eu cette erreur d'essayer de se connecter à distance à un db avec le mot de passe
'p@ssword'
compris que psy n'aime pas la'@'
symbole. Changé la DB mot de passe et le problème est résolu.Dans mon cas, il y avait 2 questions.
Par exemple, si la chaîne a été
%{user_name} welcome to %{application_name}
-- Cela a jeté une erreurPour le fixer j'ai dû changer de
Espère que cela aide quelqu'un.
Ce qui concerne,
Shardul.
YAML
fichier de mettre des guillemets autour de votre chaîne, afinhello: %{user_name} welcome to %{application_name}
devienthello: "%{user_name} welcome to %{application_name}"
plutôt que d'avoir à changer votre phrase, qui est le panier de conduire le cheval.Bien, juste au cas où cette aide...
Ce que j'ai fait:
- sélectionner tout et copier de https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale/es.yml dans une nouvelle es.yml avec notepad++
- essayé de regarder ce nouveau fichier avec l'EDI netBeans éditeur de texte, j'ai reçu un avertissement sur la sécurité du chargement avec l'utf8 (ne peut pas se rappeler le texte exact). N'a donc pas l'ouvrir avec cet éditeur de texte.
- remplacé le local thru de configuration/de l'application.rb i18n
- quand j'ai chargé un de la cisr page de je suis "n'a pas pu analyser YAML à la ligne 0 de la colonne 0", en référence à la Psy.
- Est allé à la CISR, et chargé le fichier avec syck c'était ok; commutation de psy et a obtenu le même message d'erreur.
Comment je l'ai résolu:
- remonte à copier le contenu de https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale/es.yml mais cette fois, j'ai collé dans un fichier nouvellement créé avec netBeans éditeur.
- redémarrage de webRick.
- le problème est résolu.
Meilleures Salutations,
Victor
Supprimer les bases de données de
database.rb
.Si vous utilisez MySQL et il n'y a pas de PostgreSQL puis supprimer PG code de base de données à partir de
databases.yml
.Pshych analyser est sucer à la base. Je ne suis pas sûr si c'est la solution élégante, mais j'ai réussi à résoudre ce problème en le désinstallant.
gem "psych" cannot be uninstalled because it is a default gem
J'avais vraiment, vraiment étrange problème parce que j'ai eu espaces après. E. g.:
N'a pas de travail, mais
Fait.
Si vous êtes comme moi et face à un projet (hérité) avec des centaines de luminaires quelques lignes de Ruby peut vous épargner des heures:
Il suffit de mettre dans les Rails de la racine et de l'exécuter, la corbeille lorsque vous avez terminé.
Pour d'autres personnes à la recherche de ce que j'ai trouvé le problème dans
rerun.txt
qui a été appelé parconfig/cucumber.yml
dans une application Rails.rerun.txt
a été configuré pour stocker la plus récente de concombre à défaut de test et j'ai eu en quelque sorte entré des caractères bizarres pour un concombre de test dans la console.Qui était difficile à trouver. Souhaite que je l'avais vu Glenn Rempe de réponse un moment de retour.
L'une des causes possibles est cartographie des valeurs ne sont pas autorisés dans ce contexte à la ligne ...
Ici est une mauvaise YAML exemple (utilisateur: il ne doit pas contenir n'importe quelle valeur en fait, parce qu'il contient des éléments enfants some_key et some_other_key)
Ce n'est pas une tâche facile de trouver ce genre de question, surtout si vous avez un énorme fichier YAML.
J'ai créé un assez simple expression régulière pour détecter ce genre de choses.
Je l'ai vérifié dans RubyMine
Être prudent! Il ne fonctionne pas correct avec des caractères spéciaux comme å ø æ etc.
Laissez-moi savoir dans les commentaires si cela a fonctionné pour vous 🙂