おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Rails 3にアップグレードしたら2.x系が作れなくなった

Rails 3.0 リリースノート和訳 - 前編に書かれていたやりかたでrailsを3にしてみました。

その状態で2.3.5のRailsアプリを作ろうとしたら下記のようにエラー

rails _2.3.5_ 2.3.5
/opt/ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: railties(3.0.0.beta not = 2.3.5) (Gem::LoadError)
        from /opt/ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:261:in `activate'
        from /opt/ruby187/lib/ruby/site_ruby/1.8/rubygems.rb:68:in `gem'
        from /opt/ruby187/bin/rails:18

どうも、railsコマンドがrails 3 用に書き換えられてしまったようです。まだrails2.x系も使いたいので困りましたが、railsコマンドを下記のように書き換えたら動きました。

#!/opt/ruby187/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'railties' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

if version < "3"
  gem 'rails', version
  load 'rails'
else
  gem 'railties', version
  load Gem.bin_path('railties', 'rails', version)
end