gpt4 book ai didi

ruby - redhat 上的 Yaml 解析问题

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:02 27 4
gpt4 key购买 nike

在用于在 ruby​​ 1.9.2 上运行的 Rails 应用程序的 RHEL5 框上,即使在暂存环境中,以下 yaml 也会以 login_type 设置为“ldap”的方式进行解析。有没有人知道为什么会这样?

defaults: &defaults
login_type: ldap

staging:
<<: *defaults
login_type: developer

最佳答案

可能与this Bundler/Ruby/Psych issue有关-- 它已经被修复,但不是在当前的 Ruby 版本中。

您没有看到 OS X(可能还有 Ubuntu)问题的原因是,除非您在编译/安装 Ruby 之前手动安装 libyaml,否则不会安装 Psych;它回落到 Syck,效果很好。 (尝试在 OS X 上执行 require 'psych',它会失败,而在 RHEL5 中它会正常工作)

现在,您可以强制 YAML 解析器使用 Syck 而不是 Psych,方法是将其放在 boot.rb 的末尾(但要注意—— future 版本的 Ruby 将不再包括 Syck):

YAML::ENGINE.yamler = 'syck'

或者最好,您应该暂时使用非 DRY YAML 文件(没有默认值)。

更新

今天发布的最新 Ruby 版本 (1.9.2-p290) 包含针对此问题的修复。

关于ruby - redhat 上的 Yaml 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6228741/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com