【问题标题】:uninitialized constant error for a lot of gems许多宝石的未初始化常量错误
【发布时间】:2012-05-14 07:12:08
【问题描述】:

在浏览了很多论坛之后,我得出的结论是,我是在为很多不知道这个问题答案的人问这个问题,很多时候我们确实需要 Gemfile 中的某个 gem 并且进行捆绑安装,gems 被安装,但是当我们在控制器中执行 ::.something 之类的操作并在本地服务器上运行它时,很多时候它只是抛出了这个未初始化的常量 :: 有时这个错误似乎会自行消失,有时它只是停留,试图找出这个问题到底在哪里,我觉得它是路由或配置错误。你认为这个错误可能在哪里?我应该在哪里寻找? 为了让事情更具体,我现在正在使用 xmpp4r gem。 我的 gemfile 中有这一行“gem 'xmpp4r'”,我运行了 bundle install。 然后在控制器中我把这两行

客户端 = Jabber::Client.new(jid)
client.auth('1234')
message = Jabber::Message::new(to_jid, body).set_type(:normal).set_id('1')
my_muc = Jabber::MUC::SimpleMUCClient.new(client)

奇怪的部分是它没有为客户端或消息提供错误,但它说它找不到 MUC 模块,然后我通过 rvm 并试图找到它们 xmpp4r gem 的物理位置,在那里我找到了MUC.rb 文件和它在 cmets 中说像这样使用

my_muc = Jabber::MUC::SimpleMUCClient.new(my_client)

服务器给出的错误是

未初始化的常量 Jabber::MUC

各位小伙伴们,如果你们能解决这个问题,我们将不胜感激。

好的,在 stackoverflow 上解决这个问题花了 10 分钟,为创建者和运行它的社区欢呼,特别是 gmile。

因此,如果您遇到这样的错误,我猜它的原因是虚拟机没有递归地遍历 gem 中的所有文件夹并添加所有 .rb 文件,我们必须在控制器中明确要求该文件. 直接去

.rvm/gems/ruby-1.9.2-p290/gems/


四处看看你试图访问的模块是否在那里,然后看看它是否在 gem 的子文件夹中,然后添加这些文件夹,如

需要'gemname/子文件夹'

干杯

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 rubygems


    【解决方案1】:

    尝试将其放在文件顶部:

    require 'xmpp4r'
    require 'xmpp4r/muc'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2011-09-29
      相关资源
      最近更新 更多