古いバージョンのRailsアプリケーションを作る

Ruby on Rails 2.0のインストール後に、Rails 1.2のアプリケーションを作りたくなった場合どうしたらよいのだろう。
普通にrailsスクリプトを実行したら、最新バージョンのものが実行される。よって、これではRails 1.2のアプリケーションを作ることができない。

$ rails --version
Rails 2.0.1
$

1.2と2.0の間にある隔たりは大きいので、config/environment.rbのRAILS_GEM_VERSIONを書き換えるだけでは不十分だ。

しかし、古いバージョンのgem自体は、gem cleanupしない限りは残り続けるはず。

$ gem list rails -l

 *** LOCAL GEMS ***

rails (2.0.1, 1.2.6)
$

やっぱりあるね。だから、作れるはず。

そこで、railsスクリプトの中身を覗いてみたところ、次のようにオプションを渡せばよいことがわかった。

$ rails _1.2.6_ --version
Rails 1.2.6
$

_バージョン番号_ というオプションを渡すことで、使用するバージョンを特定できる。このオプションは必ず最初に渡さなければならないので注意。

一度初期化してしまえば、アプリケーションディレクトリの内部はそのバージョン用に作られるので、後はバージョンを意識しなくて良くなる。

$ rails new
(略)
$ grep RAILS_GEM_VERSION new/config/environment.rb
RAILS_GEM_VERSION = '2.0.1' unless defined? RAILS_GEM_VERSION
$ rails _1.2.6_ old
(略)
$ grep RAILS_GEM_VERSION old/config/environment.rb
RAILS_GEM_VERSION = '1.2.6' unless defined? RAILS_GEM_VERSION

Rails 2.0が出たとはいえ即座に現場投入とはいかないだろうし、なによりまだ資料が少ないから、特にRails入門者はRails 1.2を使いたいはず。使い分けよう。

参考書通りにgem install rails -yと叩いたらRails 2.0が入ってしまい、扱い方が違いすぎて涙目な入門者向けに、古いバージョンのrailsをインストールする*1コマンドも書いておくか。ヘルプ見ればわかるけど。

# gem install rails -y -v 1.2.6

rubygemsのバージョンが0.9.5以上の環境では-yオプション不要。付けても今のところちょっとしたメッセージが追加で出てくるだけで害は無いが。

*1:正確にはバージョン指定する