许多宝石的未初始化的常量错误

时间:2012-05-14 07:12:08

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

经过很多论坛之后,我得出结论,我正在向很多不知道这个问题答案的人提出这个问题,很多时候我们确实需要在Gemfile中使用某个宝石,做捆绑安装,gems得到安装,但是当我们在控制器中执行类似::。某些东西并在本地服务器上运行时,很多时候它只会抛出这个未初始化的常量:: 有时这个错误似乎会自行消失,有时它会停留,试图找出这个问题究竟在哪里,我觉得它是路由或配置错误。你觉得这个错误在哪里?我应该在哪里看? 为了使事情变得更具特色,我现在正在使用xmpp4r gem。 我在我的gemfile中有这行“gem'xmpp4r'”,我运行了bundle install。 然后在控制器中我把这两行

  
    

client = 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(客户端)

  

奇怪的部分是它没有给客户端或消息没有错误但是它说它找不到MUC模块,然后我经历了rvm并且我试图找到它们的物理位置xmpp4r gem,在那里我发现MUC.rb文件和它所说的评论使用像这样

  
    

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

  

服务器提供的错误是

  
    

未初始化的常数Jabber :: MUC

  

所以,伙计们,如果你能解决这个问题,我们都会非常感激。

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

所以如果你得到这样的错误,我猜它的原因是虚拟机没有递归遍历gem中的所有文件夹并添加所有.rb文件,我们必须特别要求我们的控制器中的文件。 只需转到

  
    

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

  

乱七八糟地看看你想要访问的模块是否存在,然后查看它是否在gem中的子文件夹中,然后添加那些文件夹,如

  
    

需要'gemname / subfolder'

  

CHEERS

1 个答案:

答案 0 :(得分:0)

尝试将其置于文件的顶部:

require 'xmpp4r'
require 'xmpp4r/muc'