2011-05-19 72 views
0

我不確定我做了什麼,但我搞砸了Ruby/gem和諧試圖讓我的系統上運行一箇舊的2.3.5 Rails應用程序。Rails + ruby​​gems + rvm災難/混亂

我目前正在使用Ruby 1.9.2-p0和rubygems 1.5.7。我試過最新的1.8.2,但它只是產生更多的警告。我將這些與RVM一起使用。

無論我運行的是什麼版本的rubygems,當試圖啓動2.3.x Rails應用程序時,我都會得到「無法將Symbol轉換爲Integer」。我試過1.5.7,1.7.2和1.8.2。

$ script/server 
=> Booting WEBrick 
=> Rails 2.3.5 application starting on http://0.0.0.0:3000 
path/.rvm/gems/ruby-1.9.2-p0/gems/rails-2.3.5/lib/rails/gem_dependency.rb:51:in `[]': can't convert Symbol into Integer (TypeError) 

任何想法如何讓我的系統恢復和諧?

+2

你可能需要降級到紅寶石1.8.7。 1.9.2不向後兼容。 'rvm install 1.8.7' – Dex 2011-05-19 22:10:39

+0

Rubygems 1.8.2確實會產生警告,但如果您運行'gem update --system'後跟'gem pristine --all --no-extensions',接着是'gem列表「,並注意哪些(如果有的話)有警告。對於每一個做'gem uninstall'後跟一個'gem install'。這應該清理問題。 – 2011-05-19 22:33:25

+0

@Dex - 我安裝了1.8.7-p334,並使其在1.9.2-p180旁邊的終端窗口中運行。 Rails 3在1.9.2下運行良好,而rails 2在1.8.7上運行良好。非常感激!謝謝! – Slythic 2011-05-20 12:15:23

回答

0

正如Dex和The Tin Man在評論中所建議的,解決方案是使用vrm在ruby 1.8.7上運行rails 2並在ruby 1.9.2上運行rails 3。 rubygems 1.8.2(現在1.8.3)生成的警告通過運行他的建議命令來解決。