我正试图为一个ROR应用程序设置一个本地开发环境,该应用程序是以前的开发人员传给我的。我是ROR和Ruby的新手。
首先我运行bundle install
没有问题,然后运行mongod
。当我运行rails s
时,服务器启动,但它输出host is not a valid option for Mongo::Connection
。
当我尝试转到http://0.0.0.0:3000
时,会出现一条错误消息。NoMethodError in Home#index
错误指向以下路径:
显示/Users/ryansnyder/Rrails/myAppX/app/views/home/index.html.haml,其中第12行出现:
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/ruby-1.9.2-p290@global/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:10:in `require'
from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:10:in `block (2 levels) in <main>'
from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:9:in `each'
from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:9:in `block in <main>'
from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:4:in `select'
from /Users/ryansnyder/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-10.0.3/lib/rake/rake_test_loader.rb:4:in `<main>'
Errors running test:functionals!
编辑2:mondoid.yml
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'] %>
如有任何帮助,我们将不胜感激。
您需要检查要返回的对象是否为nil。您应该添加一些错误处理,并检查数据库是否返回了适当的对象。一个快速的解决方案是有条件地运行您的代码:
unless @chart.nil?
# Your previous code here
end