Installfest Help Step 2.5 'NoMethodError: undefined method `root' for main:Object'


#1

Hi All,

I’m working my way through the installfest using Ubuntu 18.04. Things are going relatively smoothly. Some problems here and there that I’ve worked through on my own. I’m stumped with this one though and could use some help.

For reference I’m on steps 2.3/2.5 here: http://installfest.railsbridge.org/installfest/deploy_a_rails_app

I can’t seem to get my routes.rb file right. It looks like this:

Rails.application.routes.draw do
  root 'drinks#index'
  resources :drinks
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

I think this must be the problem because when I try to run
git push heroku master
In step 2.5

I get an output like this:

kessel@habebe:~/railsbridge/test_app$ git push heroku master
Counting objects: 118, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (104/104), done.
Writing objects: 100% (118/118), 27.07 KiB | 3.87 MiB/s, done.
Total 118 (delta 7), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.3.7
remote: -----> Installing dependencies using bundler 1.15.2
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.16.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        Fetching gem metadata from https://rubygems.org/.........
remote:        Fetching version metadata from https://rubygems.org/..
remote:        Fetching dependency metadata from https://rubygems.org/.
remote:        Fetching rake 12.3.1
remote:        Fetching concurrent-ruby 1.0.5
remote:        Fetching minitest 5.11.3
remote:        Installing concurrent-ruby 1.0.5
remote:        Installing minitest 5.11.3
remote:        Installing rake 12.3.1
remote:        Fetching thread_safe 0.3.6
remote:        Installing thread_safe 0.3.6
remote:        Fetching builder 3.2.3
remote:        Installing builder 3.2.3
remote:        Fetching erubi 1.7.1
remote:        Installing erubi 1.7.1
remote:        Fetching mini_portile2 2.3.0
remote:        Fetching crass 1.0.4
remote:        Fetching rack 2.0.5
remote:        Installing mini_portile2 2.3.0
remote:        Installing crass 1.0.4
remote:        Fetching nio4r 2.3.1
remote:        Installing rack 2.0.5
remote:        Installing nio4r 2.3.1 with native extensions
remote:        Fetching websocket-extensions 0.1.3
remote:        Installing websocket-extensions 0.1.3
remote:        Fetching mini_mime 1.0.0
remote:        Installing mini_mime 1.0.0
remote:        Fetching arel 9.0.0
remote:        Installing arel 9.0.0
remote:        Fetching mimemagic 0.3.2
remote:        Fetching msgpack 1.2.4
remote:        Installing msgpack 1.2.4 with native extensions
remote:        Installing mimemagic 0.3.2
remote:        Using bundler 1.15.2
remote:        Fetching coffee-script-source 1.12.2
remote:        Installing coffee-script-source 1.12.2
remote:        Fetching execjs 2.7.0
remote:        Installing execjs 2.7.0
remote:        Fetching method_source 0.9.0
remote:        Installing method_source 0.9.0
remote:        Fetching thor 0.20.0
remote:        Installing thor 0.20.0
remote:        Fetching ffi 1.9.23
remote:        Installing ffi 1.9.23 with native extensions
remote:        Fetching multi_json 1.13.1
remote:        Installing multi_json 1.13.1
remote:        Fetching pg 1.0.0
remote:        Installing pg 1.0.0 with native extensions
remote:        Fetching puma 3.11.4
remote:        Installing puma 3.11.4 with native extensions
remote:        Fetching rb-fsevent 0.10.3
remote:        Installing rb-fsevent 0.10.3
remote:        Fetching tilt 2.0.8
remote:        Installing tilt 2.0.8
remote:        Fetching turbolinks-source 5.1.0
remote:        Installing turbolinks-source 5.1.0
remote:        Fetching i18n 1.0.1
remote:        Installing i18n 1.0.1
remote:        Fetching tzinfo 1.2.5
remote:        Installing tzinfo 1.2.5
remote:        Fetching nokogiri 1.8.2
remote:        Installing nokogiri 1.8.2 with native extensions
remote:        Fetching websocket-driver 0.7.0
remote:        Installing websocket-driver 0.7.0 with native extensions
remote:        Fetching mail 2.7.0
remote:        Installing mail 2.7.0
remote:        Fetching rack-test 1.0.0
remote:        Installing rack-test 1.0.0
remote:        Fetching sprockets 3.7.1
remote:        Installing sprockets 3.7.1
remote:        Fetching marcel 0.3.2
remote:        Installing marcel 0.3.2
remote:        Fetching coffee-script 2.4.1
remote:        Installing coffee-script 2.4.1
remote:        Fetching uglifier 4.1.10
remote:        Installing uglifier 4.1.10
remote:        Fetching bootsnap 1.3.0
remote:        Installing bootsnap 1.3.0 with native extensions
remote:        Fetching rb-inotify 0.9.10
remote:        Installing rb-inotify 0.9.10
remote:        Fetching turbolinks 5.1.1
remote:        Installing turbolinks 5.1.1
remote:        Fetching activesupport 5.2.0
remote:        Installing activesupport 5.2.0
remote:        Fetching loofah 2.2.2
remote:        Installing loofah 2.2.2
remote:        Fetching sass-listen 4.0.0
remote:        Installing sass-listen 4.0.0
remote:        Fetching rails-html-sanitizer 1.0.4
remote:        Installing rails-html-sanitizer 1.0.4
remote:        Fetching sass 3.5.6
remote:        Fetching rails-dom-testing 2.0.3
remote:        Installing rails-dom-testing 2.0.3
remote:        Installing sass 3.5.6
remote:        Fetching globalid 0.4.1
remote:        Installing globalid 0.4.1
remote:        Fetching activemodel 5.2.0
remote:        Installing activemodel 5.2.0
remote:        Fetching jbuilder 2.7.0
remote:        Installing jbuilder 2.7.0
remote:        Fetching actionview 5.2.0
remote:        Fetching activejob 5.2.0
remote:        Installing activejob 5.2.0
remote:        Installing actionview 5.2.0
remote:        Fetching activerecord 5.2.0
remote:        Installing activerecord 5.2.0
remote:        Fetching actionpack 5.2.0
remote:        Installing actionpack 5.2.0
remote:        Fetching actioncable 5.2.0
remote:        Fetching actionmailer 5.2.0
remote:        Fetching railties 5.2.0
remote:        Installing actionmailer 5.2.0
remote:        Installing actioncable 5.2.0
remote:        Fetching sprockets-rails 3.2.1
remote:        Installing railties 5.2.0
remote:        Installing sprockets-rails 3.2.1
remote:        Fetching activestorage 5.2.0
remote:        Installing activestorage 5.2.0
remote:        Fetching rails 5.2.0
remote:        Fetching sass-rails 5.0.7
remote:        Fetching coffee-rails 4.2.2
remote:        Installing rails 5.2.0
remote:        Installing sass-rails 5.0.7
remote:        Installing coffee-rails 4.2.2
remote:        Bundle complete! 19 Gemfile dependencies, 61 gems now installed.
remote:        Gems in the groups development and test were not installed.
remote:        Bundled gems are installed into ./vendor/bundle.
remote:        Bundle completed (33.07s)
remote:        Cleaning up the bundler cache.
remote:        Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.16.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        The latest bundler is 1.16.2, but you are currently running 1.15.2.
remote:        To update, run `gem install bundler`
remote: -----> Installing node-v8.10.0-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        NoMethodError: undefined method `root' for main:Object
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/config/routes.rb:6:in `<main>'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:277:in `block in load'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:277:in `load'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:57:in `block in load_paths'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:57:in `each'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:57:in `load_paths'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:20:in `reload!'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:43:in `block in updater'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/file_update_checker.rb:83:in `execute'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:44:in `updater'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/routes_reloader.rb:33:in `execute_if_updated'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application/finisher.rb:130:in `block in <module:Finisher>'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/initializable.rb:32:in `instance_exec'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/initializable.rb:32:in `run'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/initializable.rb:61:in `block in run_initializers'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/initializable.rb:60:in `run_initializers'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application.rb:361:in `initialize!'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/config/environment.rb:5:in `<main>'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application.rb:337:in `require_environment!'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/railties-5.2.0/lib/rails/application.rb:520:in `block in run_tasks_blocks'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
remote:        /tmp/build_21a7cc474537f85fd200a2114ccb11bf/vendor/bundle/ruby/2.3.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
remote:        Tasks: TOP => environment
remote:        (See full trace by running task with --trace)
remote:  !
remote:  !     Precompiling assets failed.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !	Push rejected to hidden-dawn-35987.
remote: 
To https://git.heroku.com/hidden-dawn-35987.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/hidden-dawn-35987.git'

I’ve searched all over and read up here: http://guides.rubyonrails.org/routing.html
No matter how I format the routes.rb file it gives me the
NoMethodError: undefined methodroot’ for main:Object `

Maybe the ‘drinks#index’ its referring to didn’t get setup properly but I haven’t skipped any steps along the way.

Any help appreciated


#2

What’s on line 6 of the routes.rb file?


#3

Here’s how it currently looks, line for line. Nothing else.

Rails.application.routes.draw do
  root 'drinks#index'
  resources :drinks
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html

end

#4

Okay, I think I just didn’t add the changes to git properly once I had the routes.rb formatted right.

Needed to:

git add .

git commit -m "Updates for heroku deployment"

Again once I had it right.