未初始化的常量 OpenSSL (NameError)

Posted

技术标签:

【中文标题】未初始化的常量 OpenSSL (NameError)【英文标题】:uninitialized constant OpenSSL (NameError) 【发布时间】:2013-06-03 12:46:16 【问题描述】:

我一直在开发一个使用 OpenSSL 解密数据文件的应用程序,但这在部署到我们的阶段服务器时不起作用。是否需要一些配置步骤来包含我在服务器上错过的 OpenSSL?我没有做任何特别的事情来使它在本地工作(在 Windows 上开发)。

导致错误的行是:

rescue_from OpenSSL::Cipher::CipherError, :with => :cipher_error

在我的一个控制器中。

Ruby 1.8.7,Rails 3.0.4 没有使用 gem 来添加 OpenSSL 支持,它只是在本地工作。

文件的实际解密工作正常(代码在/lib的模块中),只是控制器中的这一行失败了。

【问题讨论】:

【参考方案1】:

您可以尝试明确要求 openssl

require 'openssl'

你安装了 ruby​​ 1.8.7 和 rvm 吗?

如果是这样,您可能想看看这个链接:http://jronallo.github.io/blog/ruby-and-rails-using-rvm-on-a-fresh-and-updated-ubuntu-11-dot-10-install

可能相关的 SO 问题:Rails 3 - no such file to load -- openssl

【讨论】:

以上是关于未初始化的常量 OpenSSL (NameError)的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6.6 上 Ruby 的“未初始化常量 OpenSSL::PKey::EC”

jruby-openssl 中已经初始化的常量

未初始化的常量 ApplicationRecord

未定义的方法和未初始化的常量错误

未初始化的常量 Logger (NameError)

rails 链接表“未初始化的常量”错误