Rails2.0とRails1.2を共存させる方法
というかコマンド付きのgemを複数バージョンを共存させる方法。
コマンドの第一引数に_【バージョン】_を渡します。
$ rails _1.2.6_ -v Rails 1.2.6 $ rails _2.0.2_ -v Rails 2.0.2
Railsの場合はrailsコマンドでアプリの外枠を作ってしまえば、それ以降はこの指定は必要ない(config/environment.rbでRAILS_GEM_VERSIONしてるので)。ということでRails自体は1.2.6から勉強したい(参考書も多いし)けど、たまには2.0系のコードも読んでみたい、という人なんかはこうするとよいかと。
もっとちゃんと知りたいという人は、gemで入れるとコマンドがこうなるということを知っておけばOK。で
require 'rubygems' version = ">= 0" if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then version = $1 ARGV.shift end gem 'rails', version load 'rails'
、下から二行目のgem 'rails', versionでrails-【バージョン】/bin がライブラリ検索パスに追加されるので、bin以下の同名のコマンドが読み込まれて実行されるという寸法、なんだと思う。賢いですね。