2014-07-25 1 views
2

Mac OS X을 실행하는 새 MacBook에 새로운 Ruby on Rails를 설치했습니다. 10.9 매버릭스. 여기 모든 명령에 오류가 발생했습니다. "load ': 문자열을 nil로 암시 적으로 변환하지 않음"(Mac OS X 10.9)

내 스택입니다 :

  • 엑스 코드 명령 줄 도구
  • 브루
  • Rbenv
  • Bundler를
  • 루비 2.1.0
  • 레일 4.1.1

나는 01을 달렸다.을 사용하여 첫 번째 테스트 앱을 생성합니다. 이 명령이 성공적으로 완료,하지만 이후 모든 레일은 내 CLI 오류 메시지가 이런 종류의 반환에 시도 명령 : 콘솔을 시작하는 동안

$ test_app > bin/rails server 

/Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `load': no implicit conversion of nil into String (TypeError) 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/client/rails.rb:27:in `call' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/client.rb:26:in `run' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/bin/spring:48:in `<top (required)>' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Users/me/Documents/[PERSONNEL]/dev/test_app/bin/spring:16:in `<top (required)>' 
    from bin/rails:3:in `load' 
    from bin/rails:3:in `<main>' 

같은 오류 :

$ test_app > bin/rails c 

/Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `load': no implicit conversion of nil into String (TypeError) 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `block in load' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:232:in `load_dependency' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/activesupport-4.1.1/lib/active_support/dependencies.rb:241:in `load' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /Users/me/.rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from -e:1:in `<main>' 

bin/rake 부분적으로 작동합니다 (bin/rake routes을 사용할 수 있지만 마이그레이션이 작동하지 않습니다).

마지막으로 내 생각에는 XCode을 설치했지만 해결하지 못했습니다.


UPDATE : 기재하는 프로젝트에 대한 문제를 해결하지만, 필요에 따라 명령 bundle exec rake rails:update:bin마다 새로운 문제에 실행합니다. 문제가 더 심각해 보입니다.

답변

6

확인 해결책을 찾았습니다.

내 Mac도 정리했습니다. 그리고 나는 같은 오류가있다.

rails_root/bin 폴더가 없습니까? 나는이 같은 문제가

bundle exec rake rails:update:bin

+0

당신이 어떻게 그걸 알아낼 수 있었는지 모르겠지만 작동합니다, 그리고 이제는 모든 새로운 프로젝트가 다시 작동합니다! 고마워! – Arnlen

+0

나는 아직도 내 마이그레이션에 문제가 있습니다. : – Arnlen

+0

업데이트 : 문제가 해결되지 않았습니다. 위의 업데이트를 참조하십시오. – Arnlen

1

아래

보십시오. 짧은 탐색은 다음과 같습니다.

우선, 내 응용 프로그램의 루트 경로에 []이 있습니다. rails s 명령

[email protected]:~/ruby-rails[code]/context$ rails s 
/home/psylone/.rvm/gems/ruby-2.2.0/gems/spring-1.2.0/lib/spring/client/rails.rb:30:in `load': no implicit conversion of nil into String (TypeError) 

동안 오류가 여기 spring gem에 있습니다 Dir.glob 경로 인수에 []이 포함 된 경우 결과는 하늘의 배열되기 때문에 https://github.com/rails/spring/blob/master/lib/spring/client/rails.rb#L27

있다고. 따라서 Dir.glob 메서드의 경로 인수에서 []을 이스케이프 처리해야합니다.나는이 같은 생각 :

# Instead of line 27 in spring/client/rails.rb 
require 'shellwords' 
path = Shellwords.escape(Spring.application_root_path) << "/{bin,script}/rails" 
load path 

이 수정 후 내가 rails s 명령이 잘 작동을 발견했습니다. 그러나 rails c 명령은 여전히 ​​오류를 발생시킵니다. 아마 대답은 같은 성질을 가지고있을 것입니다.

따라서 이 오류를 피하는 가장 간단한 방법은 []자를 사용하지 않고 응용 프로그램의 루트 경로를으로 바꾸는 것입니다.

+0

조사 해 주셔서 감사합니다. 더 이상 문제가 없으므로 솔루션을 확인할 수 없습니다. 그러나 공유에 감사드립니다. :) – Arnlen

관련 문제