0

我有一個基於我的測試環境構建的rails應用程序。Ruby版Rails和activesupport-3.2.12的困難

在我要部署到服務器,輸出如下:

ruby -v => 1.9.3p0 
rails -v => 3.2.12 
gem -v => 1.8.15 

我已經開始用新安裝的服務器,但我不能讓紅寶石的服務器版本,寶石匹配。

rails s 
=> Booting WEBrick 
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
Exiting 
/var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:245:in `load': /var/www/New/confed ':', expecting kEND (SyntaxError) 
    match '/about', to: 'static_pages#about' 
        ^
/var/www/New/config/routes.rb:6: syntax error, unexpected ':', expecting kEND 
    match '/cv',   to: 'static_pages#cv' 
         ^
     from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:245:in `load' 
     from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:236:in `load_dependency' 
     from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/dependencies.rb:245:in `load' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:40:in `load_paths' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:40:in `each' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:40:in `load_paths' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:16:in `reload!' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:26:in `updater' 
     from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/file_update_checker.rb:78:in `call' 
     from /var/lib/gems/1.8/gems/activesupport-3.2.12/lib/active_support/file_update_checker.rb:78:in `execute' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:27:in `updater' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application/finisher.rb:66 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:30:in `instance_exec' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:30:in `run' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:55:in `run_initializers' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:54:in `each' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/initializable.rb:54:in `run_initializers' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/application.rb:136:in `initialize!' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/railtie/configurable.rb:30:in `send' 
     from /var/lib/gems/1.8/gems/railties-3.2.12/lib/rails/railtie/configurable.rb:30:in `method_missing' 
     from /var/www/New/config/environment.rb:5 
     from /var/www/New/config.ru:3:in `require' 
     from /var/www/New/config.ru:3 
     from /var/lib/gems/1.8/gems/rack-1.4.5/lib/rack/builder.rb:51:in `instance_eval' 
     from /var/lib/gems/1.8/gems/rack-1.4.5/lib/rack/builder.rb:51:in `initialize' 
     from /var/www/New/config.ru:0:in `new' 
     from /var/www/New/config.ru:0 

我看着我的測試系統上,我沒有/var/lib/gems/1.8我只有/var/lib/gems/1.9.1

此外,當我的服務器(只是爲了測試),這是失敗的輸出上運行的軌道小號

+0

聽起來就像你在目標系統上安裝了多個ruby版本的ruby。你是使用rvm還是管理多個版本? 另外,ruby 1.9.3p0很舊;您應該升級到最新版本,因爲自那以後已經有很多安全更新。 – Ari 2013-03-03 23:46:44

回答

2

從你的堆棧跟蹤,它實際上看起來像你運行在Ruby 1.8,它不支持簡化哈希語法symbol: value而1.8只有:symbol => value

您可以使用rvmrbenv來管理多個ruby版本。 rbenv在使用Rails時,imo是兩者中最好的。


回答Ryan的問題,爲什麼我認爲 rbenv > rvm是基於個人感受。我發現 rbenv易於使用,易於理解和概念化它的工作方式,而且我沒有遇到過讓我失敗的場景。另外,源代碼非常易讀,這讓我的配置變得簡單易行。

+0

你爲什麼認爲RVM更好?請解釋:) – 2013-03-04 00:04:37

+0

@RyanBigg我其實不......這是一個錯字。固定! :D – 2013-03-04 02:56:07

+0

爲什麼你認爲** rbenv **更好?請解釋一下:D – 2013-03-04 04:27:44