Posts Tagged ‘redcloth’

freeze RedCloth into vendor/

Friday, October 17th, 2008

昨天 1KG.org 突然不能访问,询问服务商,原来他们升级了 RedCloth,之前就遇到过类似的问题,RedCloth 4.0.1 和 3.0.4 不兼容,当时我只是在 environment.rb 中指定了 require 的版本:

require ‘rubygems’
gem ‘RedCloth’, ‘3.0.4′ 

结果昨天服务商八成是卸了 3.0.4 版,最好的解决方法是把 RedCloth gem 锁定到 vendor/ 中:

cd vendor/
gem unpack -v 3.0.4 RedCloth

最后一步就是如何 load 这些解开的 gems,下面的两个链接有帮助:

http://blog.jayfields.com/2006/10/rails-autoloading-gems-in-vendor.html
http://svn.techno-weenie.net/projects/plugins/gems/

我用的第二个,作为插件直接安装 ;)

ruby gems compatible issue

Tuesday, August 12th, 2008

装了 Rails 2.1 以后升级了一些相应的 gems,比如 rubyforge, rubygem 之类。再到一个 Rails 1.2.3 的项目下运行 script/server, 收到错误提示:

can’t activate rubyforge (=0.4.4), already activated rubyforge-1.0.0

搜索一下很多人遇到同样的问题,因为安装的 rubyforge 版本太多了,解决方法就是删掉所有的再装一个最新版:

sudo gem uninstall -a rubyforge
sudo gem install rubyforge

再运行又遇到问题:

RedCloth is not a class (TypeError)

RedCloth 之前用的 3.0.4,后来装了 4.0.1,据说 4.x 的 main class 不再是 RedCloth,而改成了 RedCloth::TextileDoc,无语。后来发现新的 rubygems 可以指定版本来引入 gem:

require ‘rubygems’
gem ‘RedCloth’, ‘3.0.4′

再测试问题解决,或许将 3.0.4 freeze 到 vendor 下更好些?