You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Ruby和Rails后启动服务器出现Psych::AliasesNotEnabled错误求助

Ruby 3.0.0 + Rails 7.1.2 启动服务器时 Psych::AliasesNotEnabled 错误解决方法

问题场景

原应用运行在Ruby 1.9.2 + Rails 3.0.3环境,升级至Ruby 3.0.0、Rails 7.1.2后,执行rails server命令时服务器直接退出,抛出以下错误:

错误信息

/usr/local/rvm/gems/ruby-3.0.0/gems/psych-5.1.1.1/lib/psych/visitors/to_ruby.rb:432:in visit_Psych_Nodes_Alias': Alias parsing was not enabled. To enable it, pass aliases: truetoPsych::loadorPsych::safe_load`. (Psych::AliasesNotEnabled)

问题定位

错误触发自配置加载代码:

APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]

Ruby 3.x版本配套的Psych(YAML解析库)默认禁用了YAML别名解析功能,而Ruby 1.9.2时代的解析器默认允许该功能,版本升级后的行为差异直接导致了此报错。

解决方案

将原配置加载代码替换为Rails官方推荐的config_for方法:

APP_CONFIG = Rails.application.config_for(:config)

config_for会遵循Rails的安全规范处理YAML文件解析,自动适配新版本Psych的配置要求,彻底解决别名解析相关的报错问题。

内容的提问来源于stack exchange,提问作者DevAct

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:08:18