バリケンのRuby日記 RSSフィード

2007-10-17

[][] vendor/rails削除してみる  vendor/railsを削除してみる - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  vendor/railsを削除してみる - バリケンのRuby日記  vendor/railsを削除してみる - バリケンのRuby日記 のブックマークコメント

Ruby on Railsで作られたWebアプリケーションオープンソースで配布するときは、たいてい配布物の中にvendor/railsというディレクトリがあって、特定のバージョンRailsが丸ごと入っているよ。

こうしておくと、Railsインストールされていないマシン上でもRubyさえあれば動作させることができるし、バージョンの異なるRailsインストールされているマシン上でもvendor/rails以下のRailsを使うから、Railsバージョン違いで動作しない、ということを防ぐことが出来るよ。

でもやっぱりRailsの新しいバージョン上でそのアプリケーションを動かしたい、というときは、vendor/railsディレクトリ削除しちゃえば、そのマシンインストールされているRailsを使って動作するようになるよ。

ここでは、試しに「Check It Out」という家計簿ソフト(vendor/rails以下にRails 1.2.0が入っている)の vendor/rails削除して、Rails 1.2.5上で動作させてみるサンプルだよ。

まずはvendor/railsを使った場合で動作確認。

$ cd rails
$ wget http://checkitout.flornet.fr/releases/checkitout_1.0.tar.gz
$ tar xvzf checkitout_1.0.tar.gz
$ cd checkitout_1.0
$ vi config/database.yml
$ rake db:migrate
$ ruby script/server

つづいて、vendor/rails削除するよ。config/environment.rbのRAILS_GEM_VERSIONを1.2.0から1.2.5に編集して、rake rails:update:configsしてから起動してみるよ。

$ rm -rf vendor/rails
$ vi config/environment.rb
$ rake rails:update:configs
$ ruby script/server

あれ、エラーなっちゃったエラーメッセージを見て見たら、config/routes.rbがいけないみたい。

$ vi config/routes.rb

map.root :controller => "admin"」は昔のバージョンでのroutesの書き方だから、今のバージョンでの書き方「map.connect '', :controller => "admin"」に書き直せばいいよね。

$ ruby script/server

今度はうまく動いたよ!

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20071017