2013-02-25 3 views
1

이전 개발자로부터 나에게 전달 된 ROR 앱을위한 로컬 개발 환경을 설정하려고합니다. 나는 ROR과 Ruby를 처음 사용합니다.액션 컨트롤러 : Exception Caught [NoMethodError in Home # index]

처음에는 아무런 문제없이 bundle install을 실행 한 다음 mongod을 실행합니다. rails s을 실행하면 서버가 시작되지만 host is not a valid option for Mongo::Connection을 출력합니다.

http://0.0.0.0:3000으로 가려고하면 오류 메시지가 나타납니다. 라인 # 12 제기

/Users/ryansnyder/Rails/myAppX/app/views/home/index.html.haml보기 : NoMethodError in Home#index

다음 경로에 오류 점

undefined method 'url' for nil:NilClass

추출 소스 (라인 # 12의 주위에) :

9:  %h2 Asset Protection 
10:  = link_to image_tag('asset-protection-guide.png'), 'http://myAppX.s3.amazonaws.com/assets/downloads/myAppX-AssetProtectionGuide.pdf', :title => 'Asset Protection Guide', :alt => 'Download our Asset Protection Guide', :target => '_blank' 
11: %section#graphs 
12:  = link_to image_tag(@chart.url, :alt => @chart.alt), eval(@chart.link), :title => @chart.title 
13: 
14: %section#recent-happenings 
15: %section#upcoming-events 

이 난에 그 라인에서 주석 .haml 파일을 새로 고치고 http://0.0.0.0:3000을 새로 고치고 undefined method 'question' for nil:NilClass 오류가 발생했습니다. 데이터베이스 또는 오류 처리 문제라고 가정합니다. 그러나 나는 단지 짐작하고있다.

편집 : 이것이 도움이되는지 모르겠지만 실행하면 rake test 다음 출력이 나타납니다.

host is not a valid option for Mongo::Connection 
/Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.19/lib/active_support/dependencies.rb:242:in `require': no such file to load -- turn (LoadError) 
    from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.19/lib/active_support/dependencies.rb:242:in `block in require' 
    from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.19/lib/active_support/dependencies.rb:227:in `load_dependency' 
    from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.0.19/lib/active_support/dependencies.rb:242:in `require' 
    from /Users/ryansnyder/Rails/alerstallings-master/test/test_helper.rb:4:in `<top (required)>' 
    from /Users/ryansnyder/Rails/alerstallings-master/test/functional/lawyers_controller_test.rb:1:in `require' 
    from /Users/ryansnyder/Rails/alerstallings-master/test/functional/lawyers_controller_test.rb:1:in `<top (required)>' 
    from /Users/ryansnyder/.rvm/gems/[email protected]/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:10:in `require' 
    from /Users/ryansnyder/.rvm/gems/[email protected]/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:10:in `block (2 levels) in <main>' 
    from /Users/ryansnyder/.rvm/gems/[email protected]/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:9:in `each' 
    from /Users/ryansnyder/.rvm/gems/[email protected]/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:9:in `block in <main>' 
    from /Users/ryansnyder/.rvm/gems/[email protected]/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:4:in `select' 
    from /Users/ryansnyder/.rvm/gems/[email protected]/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:4:in `<main>' 
Errors running test:functionals! 

편집 2 : 어떤 도움을 주시면 감사하겠습니다

defaults: &defaults 
    host: localhost 
    # slaves: 
    # - host: slave1.local 
    #  port: 27018 
    # - host: slave2.local 
    #  port: 27019 

development: 
    <<: *defaults 
    database: alerstallings_development 

test: 
    <<: *defaults 
    database: alerstallings_test 

staging: 
    uri: <%= ENV['MONGOHQ_URL'] %> 

# set these environment variables on your prod server 
production: 
    uri: <%= ENV['MONGOHQ_URL'] %> 

mondoid.yml.

+0

: 빠른 수정 조건부 코드를 실행하는 것입니다? – Jesper

+0

나는 그걸 어디에서 시작해야할지 모르겠다. 앞서 언급했듯이 이전 개발자 앱이었습니다. 나는 그가 원래 올바르게 설정했다고 가정한다. – rsnyder

+0

development.yml의 설정이 다른 컴퓨터/개발자마다 다를 수 있습니다. 설정은 다른 사람에게 유효 할 수 있지만 잘못된 것일 수 있습니다. 그래서 그들을 다시 확인하십시오. – Jesper

답변

0

돌아 오는 물건이 무효인지 확인해야합니다. 오류 처리를 추가하고 데이터베이스가 해당 오브젝트를 리턴하는지 점검해야합니다. 당신은 두 번 귀하의`database.yml`의 설정을 점검 한의 몽고 오류에 관한

unless @chart.nil? 
    # Your previous code here 
end 
+1

나는 db가 존재하지 않는다는 사실 때문에 에러가 없다고 생각합니다. 그렇게하면 질병 자체가 아니라 증상 만 치료할 수 있습니다. – Jesper

+1

전적으로 동의합니다. 그것은 단지 빠른 수정입니다. 대부분의 경우 적절한 오류 처리를 위해 nil이 반환되기를 원합니다. – erran

+1

너희들이 옳았다. 내 DB가 비었기 때문에 그것은 전부였습니다. 그래서 나는 mongodump와 mongorestore를하는 방법을 발견했습니다. 이제 내 응용 프로그램이 내 로컬 컴퓨터에서 실행 중입니다. 당신의 도움을 주셔서 감사합니다! – rsnyder