Rails:已删除syck,而是使用psych

And*_*sky 12 ruby ruby-on-rails syck psych

我在rails项目的capistrano部署期间收到此消息:

syck has been removed, psych is used instead
Run Code Online (Sandbox Code Playgroud)

版本:

gem 'rails', '=3.2.13'
ruby 2.0.0p247
Run Code Online (Sandbox Code Playgroud)

据我所知,红宝石使用本土yamler"心理".

Gemfile中没有任何yamler.

在我的boot.rb中:

require 'yaml'
YAML::ENGINE.yamler = 'psych'
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

Puh*_*lze 14

这可能意味着yamler被分配在某个地方的某个宝石中.您可以在此处查看消息的生成方式:https://github.com/ruby/ruby/blob/8a896179ada36b4fc0f50d75500c801a3097924a/lib/yaml.rb

如果调用yamler ='syck',则会生成警告.

我搜索了我的宝石,发现我有一个旧版本的newrelic_rpm,它有以下行引起了问题:如果定义了YAML :: ENGINE.yamler ='syck'?(YAML :: ENGINE)

更新newrelic gem为我解决了这个问题.祝你好运.