2011-10-11 74 views
1

我想切換到導軌3並使我的項目也使用它。 我裝寶石的gem list | grep rails輸出切換到導軌3

rails (3.1.1) 
在配置

/environment.rb中它表示

RAILS_GEM_VERSION = '3.1.1' unless defined? RAILS_GEM_VERSION 

,但如果我鍵入rails -v 它說的Rails 2.3.2

當我嘗試運行我得到這個服務器

/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- initializer (LoadError) 
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
from ./script/../config/boot.rb:56:in `load_initializer' 
from ./script/../config/boot.rb:39:in `run' 
from ./script/../config/boot.rb:12:in `boot!' 
from ./script/../config/boot.rb:111 
from ./script/server:2:in `require' 
from ./script/server:2 

如果我試圖讓

rails _3.1.1_ --version 

我得到

/opt/ruby1.9/lib/ruby19/1.9.1/rubygems.rb:636:in `report_activate_error': RubyGem version error: rails(2.3.2 not = 3.1.1) (Gem::LoadError) 
from /opt/ruby1.9/lib/ruby19/1.9.1/rubygems.rb:141:in `activate' 
from /opt/ruby1.9/lib/ruby19/1.9.1/rubygems.rb:49:in `gem' 
from /opt/ruby1.9/bin/rails:18:in `<main> 

有誰知道我有什麼關係呢?

Thanx

+1

不幸的是,這並不那麼簡單。您可以生成新的rails3應用程序,並將您的模型,控制器,視圖,遷移和其他東西移動到那裏。此外,還有一系列的屏幕錄像介紹了遷移過程:http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1 – taro

+0

@taro:我相信你可以將你的評論變成答案。我可以upvote它然後;-) – Arsen7

回答

0

您到目前爲止進行了哪些步驟來進行升級?

你有升級book - 可能值得12美元的投資 - 取決於你的應用程序的大小?

什麼寶石在你的Gemfile中 - 你確實有一個,對吧?

是否安裝了捆綁軟件?

您的環境似乎也對您的Ruby版本感到困惑 - /opt/ruby1.9/lib/ruby19/1.9.1/和/usr/local/lib/site_ruby/1.8 - 可能值得使用類似rvmrbenv來幫助管理/分離你的寶石和紅寶石版本。

如果你使用的是1.9-1.9.2大概是要使用的版本,我覺得1.9.1有一些問題。

HTH,克里斯

1

我相信你很快就會收到一些更有價值的答案,但我建議你嘗試通過遷移項目中創建一個新的Rails 3項目,然後移動所有模型,控制器,查看和測試從舊的到新的。

我通常會檢查新Rails版本中由生成器創建的代碼中的不同之處 - 您將經常學習一種新的,很好的技術。這可能是一項單調乏味的工作,尤其是如果你的項目相當大,但通常結果會比自動遷移更好。