1

I'm following the book "Learn Ruby on Rails" by Daniel Kehoe. I can't seem to get past the end of Chapter 10, start of Chapter 11, where I start the application server following the changes within development.rb

Here is the output:

=> Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/adrian/workspace/learn-rails/config/environments/development.rb:67:in `block in <top (required)>': uninitialized constant ActiveSupport::EventedFileUpdateChecker (NameError)
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/railtie.rb:210:in `instance_eval'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/railtie.rb:210:in `configure'
from /Users/adrian/workspace/learn-rails/config/environments/development.rb:1:in `<top (required)>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:598:in `block (2 levels) in <class:Engine>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:597:in `each'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:597:in `block in <class:Engine>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `run'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:44:in `each'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:44:in `tsort_each_child'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:415:in `call'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:415:in `each_strongly_connected_component_from'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `each'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `call'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `each_strongly_connected_component'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:226:in `tsort_each'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:205:in `tsort_each'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:54:in `run_initializers'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/application.rb:352:in `initialize!'
from /Users/adrian/workspace/learn-rails/config/environment.rb:5:in `<top (required)>'
from /Users/adrian/workspace/learn-rails/config.ru:3:in `require_relative'
from /Users/adrian/workspace/learn-rails/config.ru:3:in `block in <main>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
from /Users/adrian/workspace/learn-rails/config.ru:in `new'
from /Users/adrian/workspace/learn-rails/config.ru:in `<main>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/server.rb:61:in `app'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/server.rb:139:in `log_to_stdout'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/server.rb:78:in `start'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:80:in `block in server'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `tap'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `server'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>'
from /Users/adrian/workspace/learn-rails/bin/rails:9:in `require'
from /Users/adrian/workspace/learn-rails/bin/rails:9:in `<top (required)>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `call'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client/command.rb:7:in `call'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client.rb:30:in `run'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/bin/spring:49:in `<top (required)>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `<top (required)>'
from /Users/adrian/workspace/learn-rails/bin/spring:13:in `require'
from /Users/adrian/workspace/learn-rails/bin/spring:13:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'

Now, I've done a lot of research prior to submitting this, others have had similar issues i.e. http://stackoverflow.com/questions/37796350/syntaxis-error-when-start-rails-server-after-first-configuration but those were related to ENV errors with the config/secrets.yml file.

I've also seen suggestions to delete the following line within development.rb:

 config.file_watcher = ActiveSupport::EventedFileUpdateChecker

but that doesn't seem to help, only giving me the following error message:

Booting WEBrick
=> Rails 4.2.5 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/adrian/workspace/learn-rails/config/initializers/new_framework_defaults.rb:15:in `<top (required)>': undefined method `to_time_preserves_timezone=' for ActiveSupport:Module (NoMethodError)
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in `load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in `block in load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in `load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:652:in `block in load_config_initializer'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/activesupport-4.2.5/lib/active_support/notifications.rb:166:in `instrument'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:651:in `load_config_initializer'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:616:in `block (2 levels) in <class:Engine>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:615:in `each'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/engine.rb:615:in `block in <class:Engine>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `instance_exec'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `run'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:55:in `block in run_initializers'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:44:in `each'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:44:in `tsort_each_child'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:415:in `call'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:415:in `each_strongly_connected_component_from'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `each'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `call'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in `each_strongly_connected_component'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:226:in `tsort_each'
from /Users/adrian/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:205:in `tsort_each'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/initializable.rb:54:in `run_initializers'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/application.rb:352:in `initialize!'
from /Users/adrian/workspace/learn-rails/config/environment.rb:5:in `<top (required)>'
from /Users/adrian/workspace/learn-rails/config.ru:3:in `require_relative'
from /Users/adrian/workspace/learn-rails/config.ru:3:in `block in <main>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
from /Users/adrian/workspace/learn-rails/config.ru:in `new'
from /Users/adrian/workspace/learn-rails/config.ru:in `<main>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/server.rb:61:in `app'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/server.rb:139:in `log_to_stdout'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/server.rb:78:in `start'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:80:in `block in server'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `tap'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `server'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>'
from /Users/adrian/workspace/learn-rails/bin/rails:9:in `require'
from /Users/adrian/workspace/learn-rails/bin/rails:9:in `<top (required)>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client/rails.rb:28:in `call'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client/command.rb:7:in `call'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/client.rb:30:in `run'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/bin/spring:49:in `<top (required)>'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `load'
from /Users/adrian/.rvm/gems/ruby-2.3.1@learn-rails/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `<top (required)>'
from /Users/adrian/workspace/learn-rails/bin/spring:13:in `require'
from /Users/adrian/workspace/learn-rails/bin/spring:13:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'

Here is the content of my development.rb file:

    Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports.
  config.consider_all_requests_local = true

  # Enable/disable caching. By default caching is disabled.
  if Rails.root.join('tmp/caching-dev.txt').exist?
    config.action_controller.perform_caching = true

    config.cache_store = :memory_store
    config.public_file_server.headers = {
      'Cache-Control' => 'public, max-age=172800'
    }
  else
    config.action_controller.perform_caching = false

    config.cache_store = :null_store
  end

  # Don't care if the mailer can't send.
  config.action_mailer.raise_delivery_errors = false

  config.action_mailer.perform_caching = false

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations.
  config.active_record.migration_error = :page_load

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true
  config.action_mailer.smtp_settings = {
   address: "smtp.sendgrid.net",
   port: 587,
   domain: Rails.application.secrets.domain_name,
   authentication: "plain",
   user_name: Rails.application.secrets.email_provider_username,
   password: Rails.application.secrets.email_provider_password
  }
  # ActionMailer Config
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.raise_delivery_errors = true
  # Send email in development mode?
  config.action_mailer.perform_deliveries = true

  # Suppress logger output for asset requests.
  config.assets.quiet = true

  # Raises error for missing translations
  # config.action_view.raise_on_missing_translations = true

  # Use an evented file watcher to asynchronously detect changes in source code,
  # routes, locales, etc. This feature depends on the listen gem.
  config.file_watcher = ActiveSupport::EventedFileUpdateChecker
end

Pretty bummed out about this, I was following the tutorial and really getting into it. I'm really stumped as to what I've done to create this error...

Any help would be appreciated!

EDIT: I ultimately deleted and started the tutorial again. This time I specified the exact rails version I wanted to install (to follow the tutorial) rather than install the latest.

Adrian
  • 75
  • 1
  • 8

2 Answers2

0

You need to add the listen gem to your Gemfile (preferably within the development group) and run bundle install.

timstott
  • 344
  • 4
  • 11
  • I tried as you suggested (added listen gem to my Gemfile, within development group), but it doesn't seem to have helped with the error. I'm still getting the exact same error when trying to start my server. – Adrian Sep 21 '16 at 17:40
0

tl;dr: Re-create your Rails project, providing the specific Rails version.

Often this occurs because you have a newer version of Rails installed than the one called for in your .railsrc or template.rb.

If this is the case, when you run rails new my_new_app, the newest version is used by default for the earlier steps of the process, but then once the template/railsrc version is installed, latter steps use this version. This causes compatibility issues.

You can verify that this is your problem by comparing the output of rails -v (in the directory where you called rails new) with what's in your .railsrc or template.rb. If they are different, there is an easy fix:

Recreate your Rails app, specifying the same Rails version from your .railsrc or template.rb in the command line call:
rails _4.2.5.1_ new my_new_app

Scott Schupbach
  • 1,284
  • 9
  • 21