2

我刚刚更新到 Rails 3.2.12,Bundler 也将 libxml-ruby 从 2.4.0 更新到了 2.5.0。当我重新启动生产服务器(nginx)或尝试打开控制台时,我得到:

/home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:10:in `const_get': uninitialized constant LibXML::XML::Error::I18N (NameError)
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:10:in `block (2 levels) in <class:Error>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:8:in `each'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:8:in `block in <class:Error>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:7:in `tap'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:7:in `<class:Error>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:5:in `<module:XML>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:4:in `<module:LibXML>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:3:in `<top (required)>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml.rb:11:in `<top (required)>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/xml.rb:13:in `<top (required)>'

我的开发盒上没有同样的问题。

我所能想到的是,2.5.0 gem 仍然引用旧的 2.4.0 编译库,并且其中没有定义特定的常量。但不知道这将如何发生,也不知道如何纠正它。也不管这是否正确。

任何想法都会受到欢迎。

4

2 回答 2

2

我有同样的问题,它在生产上失败,但在本地工作。我尝试将 gem libxml-ruby 的版本冻结到 2.4.0,它就像一个魅力。

希望能帮助到你!

于 2013-02-13T15:33:39.923 回答
0

该问题发生在旧版本的 libxml 上。我刚刚发布了 libxml-ruby 的更新版本 2.6.0,应该可以解决这个问题。

于 2013-02-17T05:52:20.277 回答