Eric-Guo / wechat

API, command and message handling for WeChat in Rails
MIT License
1.31k stars 372 forks source link

Psych::BadAlias (Unknown alias: default) #308

Closed otorain closed 2 years ago

otorain commented 2 years ago

问题描述

在处理微信的回调时报这个错,ruby-3.0.1 没有这个问题。google 后好像跟 YAML 的别名有关,将 gem 下载下来,把所有YAML.load方法调用到的地方添加了aliases: true这个 option 后就可以了。修改后的代码提交了 PR

环境

ruby: 3.1.0 rails: 7.0.2

报错详细信息

Psych::BadAlias (Unknown alias: default):

app/controllers/wechats_controller.rb:4:in `<class:WechatsController>'
app/controllers/wechats_controller.rb:3:in `<main>'
app/middlewares/case_converter_middleware.rb:38:in `call'
otorain commented 2 years ago

image

看 ruby 3.1.0 的升级内容发现是由于 psych 这个 gem 升级后导致的,临时的解决方案是将这个 gem 降级为 '3.3.2' 版本,具体操作在 Gemfile 里边添加:

gem 'psych', "3.3.2"

然后运行 bundle i

Eric-Guo commented 2 years ago

Release v15.1 to fix