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

如何从Ruby脚本初始化Rails 5.1环境用于Clockwork及问题排查

解决Clockwork初始化Rails时OpenSSL重复加载的错误

看起来你遇到的问题根源是第三方openssl gem与Ruby内置的OpenSSL库冲突了。从你的本地gem列表可以看到,你同时安装了第三方的openssl (2.0.5)和Ruby默认的openssl (2.0.3),这会导致加载时重复定义OpenSSL相关类,最终触发superclass mismatch for class Cipher错误。

解决步骤:

  • 卸载第三方openssl gem
    在终端运行以下命令,选择卸载非默认的2.0.5版本:

    gem uninstall openssl
    

    终端会提示你选择要卸载的版本,输入对应2.0.5的编号即可。

  • 检查Gemfile并清理依赖
    确认你的Gemfile里没有手动添加gem 'openssl'(如果有的话,删掉这一行),然后运行:

    bundle install
    

    确保项目依赖中不再包含第三方openssl gem。

  • 重新运行你的Clockwork脚本
    现在再执行你的my-file.rb,应该不会再出现OpenSSL重复加载的警告和错误了。

为什么会出现这个问题?

Ruby本身已经内置了OpenSSL库,第三方的openssl gem通常是为了提供特定版本的补丁或特性,但在Rails 5.1 + Ruby 2.4.1的环境下,这个第三方gem会和Rails依赖的内置OpenSSL库产生冲突,导致同一类被两次定义,最终抛出类型错误。你的初始化脚本顺序是正确的(先加载config/boot再加载config/environment),问题本质是gem依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:36:46