天天看點

rails項目更新文檔

---主題:更新項目到 3.0.0.beta3

注意:rails需要至少ruby 1.8.7,如果ruby版本不夠1.8.7,請更新為1.8.7或1.9.2。

1: 更新rubygems為1.3.7

sudo gem update --system

2:安裝rails 3.0依賴的包

1》

sudo gem install tzinfo builder i18n memcache-client rack rake rack-test erubis mail text-format thor bundler

2》

sudo gem install rack-mount

3:安裝rails 3.0

gem install rails --pre -v=3.0.0.beta3

4:更新項目

1》 安裝官方的更新插件(如果沒有安裝git,先安裝git)

1》》 進入項目下,script/plugin install git://github.com/rails/rails_upgrade.git

2》》 建立rails3的項目app(rails app)

3》》 進入ihaveu項目下

1)進入ihaveu項目下,rake rails:upgrade:backup

這個rake會備份一些要修改的檔案,備份檔案以rails2結尾.

2)複制app項目config/application.rb檔案到項目的config下

執行rake rails:upgrade:configuration

将從module開始及其以後的内容都複制到application.rb中覆寫module 的内容,注意如果你在這裡有config.gem 的配置,在新的config/application.rb檔案中要删除掉,會報錯的

3)複制app項目根目錄下的Gemfile檔案到ihaveu項目。

執行rake rails:upgrade:gems

生成的内容複制到Gemfile下

4)進入ihaveu項目下,執行rake rails:upgrade:routes

生成的内容複制到routes.rb中

5)複制app項目下的config.ru檔案到ihaveu項目下

修改config.ru檔案中的run **::Application的**(**是項目名稱)改為現在的項目名稱(Ihave,首字母大寫)

6)複制app項目config下environment.rb檔案到ihaveu項目下

修改environment.rb檔案中的run **::Application.initialize!(**是項目名稱)改為現在的項目名稱(Ihave,首字母大寫)

7) 删掉ihaveu項目的config/initializers下的new_rails_defaults.rb檔案

8) 複制app項目config下的boot.rb檔案到ihaveu項目下對應的位置

9) 複制app項目下的script目錄中的rails檔案複制到ihaveu項目下的script目錄中

10) 修改ihaveu項目中config/environments目錄下的三個檔案(development.rb、test.rb、production.rb),這三個檔案要這樣修改

Ihaveu(項目名稱)::Application.configure do

# 原來的代碼

end

11) rails server 啟動伺服器

如果沒有用插件(或者使用的插件已經支援Rails 3.0 beta了),估計就可以初步地啟動伺服器了,此時啟動項目時,會提示問題,如果使用了gem包,很有可能會出現問題,此時需要依照各自的問題來解決。現在我查找ihaveu項目中的不用的或不支援rails 3的gem包。

12) 注釋不相容Rails 3.0 beta的gem包

進入ihaveu項目中,打開根目錄Gemfile檔案,注釋掉以下gem:

# gem 'rails', '2.3.4'

# gem 'thoughtbot-paperclip', '~> 2.3.0', :require => 'paperclip'

# gem 'rspec-rails', :require => 'spec/rails'

# gem 'thinking-sphinx', :require => 'thinking_sphinx'

source 'http://gemcutter.org'

# gem 'ts-datetime-delta', '>= 1.0.0', :require => 'thinking_sphinx/deltas/datetime_delta'

以下是可以替換的包:

gem install rspec --prerelease

gem install rspec-rails --pre

gem install thinking-sphinx --pre

注意:其實nkallen-cache-money包也是不相容Rails 3.0 beta,但是這個可以修改,修改後就可以用了,修改方法如下:

找到已安裝好的nkallen-cache-money包

1》打開/lib/下的cache_money.rb,将require 'activesupport'、require 'activerecord'修改為require 'active_support'、require 'active_record'(因為rails3 中隻有require 'active_support'、require 'active_record'沒有require 'activesupport'、require 'activerecord')

2》打開/lib/cash下的mock.rb,将< HashWithIndifferentAccess删掉

13)修改内容

1》

把ihaveu項目中config下的environment.rb.rails2中

module Kernel

def is_sphinx_enabled?

false#RUBY_PLATFORM !~ /mingw|mswin|java/ && File.exist?(%x(which mmseg)[0..-2]) # && RAILS_ENV == "production"

end

end

複制到ihaveu項目中config/application.rb中的module 項目名稱 上邊。

2》

ihaveu項目/config/initializers/error_table.rb中注釋以下行:

4、17、62、63、66、69、70、72、79、80、81、83、84、86、87、88、145、146、147、148、149、150、151、152、169、176

3》

ihaveu項目/config/initializers/new_rails_defaults.rb中注釋第14行

4》

ihaveu項目/config/initializers/session_store.rb中注釋第16、22行

5》

1》》ihaveu項目/config/routes.rb中修改以下内容:

match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => , :invitation_code =>

改為

match '/signup/:invitation_id/:invitation_code' => 'home/accounts#new', :as => :signup, :invitation_id => "", :invitation_code => ""

2》》

把所有的get_post :***,改為get :***和 post :***。

3》》

修改路由代碼,為resources指定:controller選項

例如:

resources :friends do

......

end

改為

resources :friends, :controller => 'home/friends' do

......

end

14)更新項目完成,啟動項目rails server

---主題:更新項目到2.3.8

1:安裝rails 2.3.8(如果想删掉舊版本的gem,sudo gem cleanup)

sudo gem install rails -v=2.3.8

2:更改config/environment.rb代碼中的RAILS_GEM_VERSION為2.3.8

3:啟動項目運作。

4:沒有不相容的插件。