Upgrade to Rails 2.0.2

by winson, 6 months ago.

Rails向來以無痛開發、無痛升級著稱,透過gem來安裝Rails無論升級或移除都很簡便;萬一還是不放心,可以先裝到vender目錄下試試。雖然沒什麼大問題,不過還是有些小地方須注意:

有些報告指出,可能因為gem版本的問題導致無法安裝新版Rails。

新版gem最大的優點是,以往安裝gem需要加上-include-dependencies選項,以便同時安裝相關的gem,現在已經變成預設指令了,也就是說只需要輸入

sudo gem install xxx
就已經含有—include-dependencies選項,真是方便的很。

請輸入以下指令將gem更新到0.9.5版:

sudo gem update --system

請輸入以下指令升級到Rails 2.0.2版:

sudo gem install rails
花點時間等候他安裝完畢,接著啟動程式:
sudo mongrel_rails start -c ~/my_rails_project_dir
再來跟著錯誤訊息一步一步改:

config.breakpoint_server has been deprecated and has no effect.
這沒什麼,就是到config/environments/development.rb把config.breakpoint_server註解掉。
# Enable the breakpoint server that script/breakpointer connects to
# CHANGED: For Rails 2.0.2.
# config.breakpoint_server = true
undefined method 'call_filter' for class 'ActionController::Base' (NameError).
這是因為使用Stickies外掛造成的,把外掛升級一下就好。
undefined method 'nil_class_path' for #<ActionView::Base>.
如果有用到form_tag multipart,稍微修改一下即可:

<%# CHANGED: For Rails 2.0.2. %>
<%# form_tag [], :multipart => true do %>
<% form_tag "", :multipart => true do %>
Controller裡的動態scaffold已經不是預設,而是外掛了:
undefined method 'scaffold' for ActionController:Class.
所以,註解掉就好。 如果您看過我的Rails起手式,也跟我一樣喜歡用動態scaffold來寫程式的話,可輸入以下指令安裝動態scaffold:
script/plugin install http://dev.rubyonrails.com/svn/rails/plugins/scaffolding/
又因為動態scaffold會用到內建分頁,而內建分頁功能也被拿掉成為外掛,這裡請一併安裝服用:
script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination

升級後感覺速度明顯加快,不知道是不是心理作用。這不是心理作用,因為Rails 2.0.2內建SQL query cache的緣故。


  • Posted in Gems, Rails, on Thursday, December 20, 2007, at 07:32 PM.