2011-11-05 2 views
0

방금 ​​프로젝트를 다른 서버로 옮겼으며 Ruby 1.9.2부터 새로운 새로운 해시 인수와 관련된 문제가있는 것으로 보입니다. 내가 rails s를 실행하면 나는 오류가 난 정말 위의 코드 라인이 문제라고 생각하지 않습니다 다음 줄Ruby 1.9.3에서 새로운 스타일의 해시 인수 사용 가능

Myapp::Application.config.session_store :cookie_store, key: '_myapp_session' 

를 참조하는 다음과 같은 오류를

Exiting 
/usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:234:in `load': /var/www/myapp/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end (SyntaxError) ...sion_store :cookie_store, key: '_myapp_session' 
         ^
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:234:in `load' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:223:in `load_dependency' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:640:in `new_constants_in' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:223:in `load_dependency' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:234:in `load' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/engine.rb:556 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/engine.rb:555:in `each' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/engine.rb:555 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initializable.rb:30:in `instance_exec' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initializable.rb:30:in `run' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initializable.rb:55:in `run_initializers' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initializable.rb:54:in `each' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/initializable.rb:54:in `run_initializers' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/application.rb:96:in `initialize!' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/railtie/configurable.rb:30:in `send' 
from /usr/lib/ruby/gems/1.8/gems/railties-3.1.1/lib/rails/railtie/configurable.rb:30:in `method_missing' 
from /var/www/myapp/config/environment.rb:5 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:240:in `require' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:240:in `require' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:223:in `load_dependency' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:640:in `new_constants_in' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:223:in `load_dependency' 
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:240:in `require' 
from /var/www/myapp/config.ru:4 
from /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/builder.rb:51:in `instance_eval' 
from /usr/lib/ruby/gems/1.8/gems/rack-1.3.4/lib/rack/builder.rb:51:in `initialize' 
from /var/www/myapp/config.ru:1:in `new' 
from /var/www/myapp/config.ru:1 

를 얻을. '_myapp_session'키를 제거하거나 다시 Ruby 1.8.X 스타일로 되돌리려면 다음 해시 인수 오류가 발생합니다.

저는 원래 서버로 옮긴 서버에서 Ruby 1.8.7을 실행했습니다. 루비를 1.9.3으로 업데이트했습니다. 내가 달릴 때 ruby -v 내가 얻을 ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]

내가 왜 아직도 해시 문제가 있는지 모르겠다. 비슷한 문제가있는 사람이 있습니까?

+0

어떻게 그 컴퓨터에 1.9.x를 설치 했습니까? RVM? rbenv? 시스템 루비를 교체 하시겠습니까? –

+0

@Derek, RVM을 사용하지 않았습니다. 'apt-get install ruby1.9.1'을 사용했습니다. – Oakland510

답변

2

당신은 경로를 확인해야 할 수 있습니다 1.8 루비 트리에서 실행 레일을 사용하는 것 같습니다. 업그레이드 할 때 보석을 다시 설치해야 할 수도 있습니다.이 상황이 rvm이 루비를 설치하기 위해 선호하는 한 가지 이유입니다.

1

당신이 유죄를 의심하고있는 코드를 게시해야한다, 그렇게 작은 단서로 대답하기 어렵다. 당신의 해시의 모든 키가 문자 인 경우 새로운 스타일에 대한

하나 개 잡았다 만 사용할 수 있다는 것입니다,이 문제가 될 수 있습니다.

+0

죄책감이있는 코드로 내 게시물을 업데이트했습니다. 나는이 선이 문제가되는지 확신하지 못한다. 제거 할 때 다른 해시로 인한 다음 오류가 발생합니다. – Oakland510

+0

@DGM이 맞다. 새 루비 패키지를 설치하기 전에 이전 루비 패키지를 올바르게 제거해야한다. 그리고 그는 rvm에 대해서도 옳습니다. –

관련 문제