Shovell-debug-01 not starting up

Hi all,

I’m on chapter 11 of the book, Simply Rails 2, and have followed the instruction to start the server using the shovell-debug-01 folder and files.

However, when I attempted to do that, I got the following error:

Missing the Rails 2.0.2 gem. Please `gem install -v=2.0.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

As I am running the 2.3.5 version of rails (the latest that I got from gems), I commented out the RAILS_GEM_VERSION line.

Upon trying to start the server, I then got the following error and the server doesn’t start.

/Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:602:in `send': undefined method `cache_template_extensions=' for ActionView::Base:Class (NoMethodError)
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:602:in `initialize_framework_settings'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:601:in `each'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:601:in `initialize_framework_settings'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:598:in `each'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:598:in `initialize_framework_settings'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:155:in `process'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send'
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run'
	 ... 6 levels...
	from /Library/Ruby/Gems/1.8/gems/rails-2.3.5/lib/commands/server.rb:84
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
	from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
	from script/server:3

Could somebody tell me what is going wrong, and how I am able to fix it? I don’t actually wish to downgrade my version of rails to the 2.0.2… I’m stuck at this stage of the book until I can get this to work. :frowning:

edit: yes, I do get the same error when I am attempting to run shovell-debug-02

Can you show me the code in your config/environment.rb file?

Urmm. It’s mostly commented out stuff. But here we go. The original one that I got from the code archive:

# Be sure to restart your server when you modify this file

# Uncomment below to force Rails into production mode when
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'

# Specifies gem version of Rails to use when vendor/rails is not present
#RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION

# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
  # Settings in config/environments/* take precedence over those specified here.
  # Application configuration should go into files in config/initializers
  # -- all .rb files in that directory are automatically loaded.
  # See Rails::Configuration for more options.

  # Skip frameworks you're not going to use (only works if using vendor/rails).
  # To use Rails without a database, you must remove the Active Record framework
  # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]

  # Only load the plugins named here, in the order given. By default, all plugins 
  # in vendor/plugins are loaded in alphabetical order.
  # :all can be used as a placeholder for all plugins not explicitly named
  # config.plugins = [ :exception_notification, :ssl_requirement, :all ]

  # Add additional load paths for your own custom dirs
  # config.load_paths += %W( #{RAILS_ROOT}/extras )

  # Force all environments to use the same logger level
  # (by default production uses :info, the others :debug)
  # config.log_level = :debug

  # Your secret key for verifying cookie session data integrity.
  # If you change this key, all old sessions will become invalid!
  # Make sure the secret is at least 30 characters and all random, 
  # no regular words or you'll be exposed to dictionary attacks.
  config.action_controller.session = {
    :session_key => '_shovell_session',
    :secret      => '6bfbb8f2bed66a842a3f9eda009ccdf2875fc569e856b09be2ea3470cd006901668ff833bcae0d1317c290d48881a5c84ec47fa37ab456d7a34c6cc1d1667a75'
  }

  # Use the database for sessions instead of the cookie-based default,
  # which shouldn't be used to store highly confidential information
  # (create the session table with 'rake db:sessions:create')
  # config.action_controller.session_store = :active_record_store

  # Use SQL instead of Active Record's schema dumper when creating the test database.
  # This is necessary if your schema can't be completely dumped by the schema dumper,
  # like if you have constraints or database-specific column types
  # config.active_record.schema_format = :sql

  # Activate observers that should always be running
  # config.active_record.observers = :cacher, :garbage_collector

  # Make Active Record use UTC-base instead of local time
  # config.active_record.default_timezone = :utc
end

Instead of commenting out the RAILS_GEM_VERSION line, change the 2.0.2 to 2.3.5