背景在 Windows 7 PC 上通过 RailsTutorial 编写代码的完全新手——我在第 4.2 章中停滞不前,在 Ruby on Rails 的命令提示符下运行“rails 控制台”时出现 YAML 错误。
我需要有关如何解释和使用我在 stackoverflow/google groups/github 上找到的一些特定答案(如下)的提示。
我试图满足论坛的问题标准。如果我的任何困惑在这里太基本了,请让我知道我可以尝试哪些以及在哪里。
错误 -
~\Sites\sample_app rails 控制台
C:/a_installers/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:154:in 'parse
: (<unknown>): couldn't parse YAML at line 44 column 11 (Psych::SyntaxError)
from C:/a_installers/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/psych.rb:
54:in 'parse_stream'
(这样还有 40 行)
不确定我可以提供什么有用的上下文。可能是我在 Windows 7 上使用了 Railsinstaller 和后来的 Pik(而不是 RVM),我在 c:\a_installers\railsInstaller下安装了 ralis/ruby 程序,并且我已经更新了 PATH 以包含ruby bin 文件夹。
问题我难以解释/使用的建议是..
-
一个。通过 yamlint.com 运行 YAML 代码
哪个 YAML 文件?错误列表中的所有内容?我想我正在从我安装的 rails 程序区域(上图)运行 rails 控制台,在那里我发现了 60 个带有“*.yml”的奇怪文件——我是否必须通过 YAMLlint.com 运行所有这些文件?
湾。手动修复 YAML 代码
给出的一个示例是“修复无效 yaml”,涉及将本地日期的 yaml 代码拆分为行。这不适用——我在系统上 railsinstaller 下的 60 个“*.yml”文件中找不到任何此类代码
C。“在 config/boot.rb 中使用代码 xxx 加载旧的 YAML 解析器(syck)”</p>
两个问题……</p>
(1) 我在 rails/ruby 程序区找不到boot.rb
(2) 我在两种相反的观点之间左右为难
“Psych 是新的,你应该使用的那个你在某处有一些无效的 yaml。” 和
“错误...... ruby 应该使用一个既维护又支持现有用法的解析器,即使该用法与规范相差甚远。要是有这样的事就好了。在没有之前,他们应该使用 syck..”</p>
总之,不确定要修改哪些文件,如何修改,如何检查。如果它是可取的,而不是做一个解决方法(恢复到 syck),如果是这样,在哪个目录和哪些文件中。
另一个来源 rails-yaml-config-best-practice 建议
“在 environment.rb 中配置参数。” 使用名为“设置逻辑”的 github 代码
不知道该怎么做……我需要学习 YAML 吗?教程甚至还没有开始 Ruby – 这是不是不确定在哪里做这个 – 在我的 rails/ruby 程序区域找不到 environment.rb – 它似乎是我的应用程序的一部分 (sample_app)
在 ..Settings_logic 中……这些注释似乎让我回到了上面的 1.。
“..注意:某些 Ruby/Bundler 版本包括不正确处理合并的 Psych YAML 解析器版本(
<<
在上面的示例中)。如果您的默认设置似乎覆盖了您的特定于环境的设置,包括您的以下行config/boot.rb 文件可以解决问题:需要'yaml' YAML::ENGINE.yamler='syck'
要应用此解决方案,我仍然需要解决问题 1 c (2)
3 一般建议 - 我无法启动 Rails 控制台似乎是我使用 ROR 的绝对障碍 - 几个一般性问题 - 从业者是使用 rails 控制台进行实际开发还是只是学习?我可以在没有 Rails 控制台的情况下学习 RoR 吗?
非常感谢您的耐心、时间和关注。