我刚刚更新到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编译库,并且未在其中定义特定常量。但不知道这将如何发生,也不知道如何纠正它。这是否是正确的。
欢迎任何想法。
答案 0 :(得分:2)
我有同样的问题,它在生产上失败但在本地工作。我尝试将gem libxml-ruby的版本冻结到2.4.0,它就像一个魅力。
希望它有所帮助!
答案 1 :(得分:0)
旧版本的libxml发生了这个问题。我刚刚发布了一个更新版本的libxml-ruby,2.6.0,它应该可以解决这个问题。