0
votes

When i run the test i receive this message(i am guessing it passed), but when i go to local host300 i receive the following on all my pages: No route matches [GET] "/about"

I have been stuck on this for around 4 hours :(

This is the test report i received-

C:\Sites\rails_projects\sample_app>bundle exec rspec spec/requests/static_pages_ spec.rb C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.13/lib/ac tive_support/dependencies.rb:251:in require': C:/Sites/rails_projects/sample_ap p/app/helpers/application_helper.rb:12: syntax error, unexpected keyword_end, ex pecting $end (SyntaxError) from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:251:inblock in require' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:236:in load_dependency' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:251:inrequire' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:359:in require_or_load' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:313:independ_on' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:225:in require_dependency' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:135:inblock in modules_for_helpers' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:131:in map!' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:131:inmodules_for_helpers' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/action_controller/metal/helpers.rb:92:in modules_for_helpers' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:95:inhelper' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:159:in default_helper_module!' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:22:inblock in inherited' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:22:in class_eval' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/helpers.rb:22:ininherited' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/action_controller/metal/params_wrapper.rb:135:in inherited' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/abstract_controller/railties/routes_helpers.rb:7:inblock (2 levels) in with' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2 .13/lib/action_controller/railties/paths.rb:7:in block (2 levels) in with' from C:/Sites/rails_projects/sample_app/app/controllers/application_cont roller.rb:1:in' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:251:in require' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:251:inblock in require' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:236:in load_dependency' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:251:inrequire' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:359:in require_or_load' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:313:independ_on' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport- 3.2.13/lib/active_support/dependencies.rb:225:in require_dependency' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/engine.rb:439:inblock (2 levels) in eager_load!' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/engine.rb:438:in each' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/engine.rb:438:inblock in eager_load!' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/engine.rb:436:in each' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/engine.rb:436:ineager_load!' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/application/finisher.rb:53:in block in <module:Finisher>' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/initializable.rb:30:ininstance_exec' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/initializable.rb:30:in run' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/initializable.rb:55:inblock in run_initializers' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/initializable.rb:54:in each' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/initializable.rb:54:inrun_initializers' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/application.rb:136:in initialize!' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1 3/lib/rails/railtie/configurable.rb:30:inmethod_missing' from C:/Sites/rails_projects/sample_app/config/environment.rb:5:in <top (required)>' from C:/Sites/rails_projects/sample_app/spec/spec_helper.rb:3:inrequir e' from C:/Sites/rails_projects/sample_app/spec/spec_helper.rb:3:in <top ( required)>' from C:/Sites/rails_projects/sample_app/spec/requests/static_pages_spec. rb:1:inrequire' from C:/Sites/rails_projects/sample_app/spec/requests/static_pages_spec. rb:1:in <top (required)>' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/configuration.rb:780:inload' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/configuration.rb:780:in block in load_spec_files' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/configuration.rb:780:inmap' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/configuration.rb:780:in load_spec_files' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/command_line.rb:22:inrun' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/runner.rb:69:in run' from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.1 1.1/lib/rspec/core/runner.rb:8:inblock in autorun'

My Coded Pages:

helpers\application.helper.rb

 def full_title(page_title)
base_title = "Ruby on Rails Tutorials Sample App"
if page_title.empty?
    base_title
else
    "#{base_title} | #{page_title}"
end
    end
    end

Static_pages_helper.rb

 module StaticPagesHelper
 end

Application.html.erb

<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag    "application", media: "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>    
 </head>
 <body>
  <%= render 'layouts/header' %>
  <div class="container">
  <%= yield %>
  <%= render 'layouts/footer' %>
  </div>
  </body>
  </html>

Spec\requests\static_pages_spec.rb

 require 'spec_helper'

 describe "Static pages" do

subject { page }

 describe "Home page" do
before { visit root_path }

it { should have_selector('h1',    text: 'Sample App') }
it { should have_selector('title', text: full_title('')) }
it { should_not have_selector 'title', text: '| Home' }
 end

describe "Help page" do
before { visit Help_path }

it { should have_selector('h1',    text: 'Help') }
it { should have_selector('title', text: full_title('Help')) }
 end

describe "About page" do
before { visit About_path }

it { should have_selector('h1',    text: 'About') }
it { should have_selector('title', text: full_title('About Us')) }
 end

describe "Contact page" do
before { visit Contact_path }

it { should have_selector('h1',    text: 'Contact') }
it { should have_selector('title', text: full_title('Contact')) }
end
end

routes.rb

SampleApp::Application.routes.draw do

match '/static_pages/home' => 'static_pages#home'
match '/Help',    to: 'static_pages#Help'
match '/About',   to: 'static_pages#About'
match '/Contact', to: 'static_pages#Contact'

root to: 'static_pages#home'

about.html.erb

 <% provide(:title, "About Us") %>
 <h1>About Us</h1>
   <p>
The <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
is a project to make a book and screencasts to teach web development
with <a href="http://rubyonrails.org/">Ruby on Rails</a>. This
is the sample application for the tutorial.
  </p>
  </body>
  </html>

contact.html.erb

  % provide(:title, 'Contact') %>
  <h1>Contact</h1>
  <p>
    Contact Ruby on Rails Tutorial about the sample app at the
   <a href="http://railstutorial.org/contact">contact page</a>.
  </p>

help.html.erb

   <% provide(:title, 'Help') %>
   <!DOCTYPE html>
   <html>
<head>
    <title>Ruby on Rails Tutorial Sample App | <%= yield(:title) %></title>
</head>
<body>  
    <h1>Help</h1>
    <p>
Get help on the Ruby on Rails Tutorial at the
<a href="http://railstutorial.org/help">Rails Tutorial help page</a>
To get help on this sample app, see the
<a href="http://railstutorial.org/book">Rails Tutorial book</a>.
   </p>
   </body>
  </html>

home.html.erb

<div class="center hero-unit">
  <h1>Welcome to the Sample App</h1>

 <h2>
  This is the home page for the
  <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
  sample application.
  </h2>

   <%= link_to "Sign up now!", '#', class: "btn btn-large btn-primary" %>
  </div>

  <%= link_to image_tag("rails.png", alt: "Rails"), 'http://rubyonrails.org/' %>

utilities.rb

def full_title(page_title)
 base_title = "Ruby on Rails Tutorial Sample App"
 if page_title.empty?
 base_title
 else
"#{base_title} | #{page_title}"
 end
 end

application.rb

          require File.expand_path('../boot', __FILE__)

      # Pick the frameworks you want:
     require "active_record/railtie"
     require "action_controller/railtie"
     require "action_mailer/railtie"
     require "active_resource/railtie"
   require "sprockets/railtie"
    # require "rails/test_unit/railtie"

     if defined?(Bundler)
    # If you precompile assets before deploying to production, use this line
   Bundler.require(*Rails.groups(:assets => %w(development test)))
       # If you want your assets lazily compiled in production, use this line
       # Bundler.require(:default, :assets, Rails.env)
      end

    module SampleApp
   class Application < Rails::Application
   # 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.

    # Custom directories with classes and modules you want to be autoloadable.
    # config.autoload_paths += %W(#{config.root}/extras)

   # Only load the plugins named here, in the order given (default is alphabetical).
   # :all can be used as a placeholder for all plugins not explicitly named.
   # config.plugins = [ :exception_notification, :ssl_requirement, :all ]

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

 # Set Time.zone default to the specified zone and make Active Record auto-convert to
 this zone.
  # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
  # config.time_zone = 'Central Time (US & Canada)'

# The default locale is :en and all translations from config/locales/*.rb,yml are auto
 loaded.
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
  # config.i18n.default_locale = :de

 # Configure the default encoding used in templates for Ruby 1.9.
config.encoding = "utf-8"

# Configure sensitive parameters which will be filtered from the log file.
config.filter_parameters += [:password]

# Enable escaping HTML in JSON.
config.active_support.escape_html_entities_in_json = true

# Use SQL instead of Active Record's schema dumper when creating the 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

# Enforce whitelist mode for mass assignment.
# This will create an empty whitelist of attributes available for mass-assignment for 
all models
# in your app. As such, your models will need to explicitly whitelist or blacklist
 accessible
# parameters by using an attr_accessible or attr_protected declaration.
config.active_record.whitelist_attributes = true

# Enable the asset pipeline
config.assets.enabled = true

# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'
  end
 end

github address: https://github.com/froeal01/sample_app

Trying to starts the server, created with this error:

Exiting C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.13/lib/ac tive_support/dependencies.rb:245:in `load': C:/Sites/rails_projects/sample_app/c onfig/routes.rb:64: syntax error, unexpected keyword_end, expecting $end (Syntax Error)

1
Did you do bundle install to install rspec-rails? Did you restart your server afterwards? Did you do rake db:test:prepare. Those are obvious things to try out.Jason Kim
Hello. Just tried what you suggested and nothing. When i open the localhost (no /home , /about..etc) I get this error:SyntaxError in StaticPagesController#home C:/Sites/rails_projects/sample_app/app/helpers/application_helper.rb:12: syntax error, unexpected keyword_end, expecting $enduser2201289
other pages still have "Routing Error" No route matches.user2201289
Can you run "rake routes" in your terminal, and paste the response? That might provide a clue.Sasha
Also, could you push to github again? Your routes file up there is currently NOT the one Benjamin suggested, and if that's the case on your computer as well, that is likely the problem.Sasha

1 Answers

0
votes

Your application helper is missing an end.

 def full_title(page_title)
   base_title = "Ruby on Rails Tutorials Sample App"
   if page_title.empty?
     base_title
   else
    "#{base_title} | #{page_title}"
   end
 end

There's a problem with how you define your routes. Rails routes are all lowercase.

SampleApp::Application.routes.draw do
  get "home",     :to => "static_pages#home"
  get "help",     :to => "static_pages#help"
  get "about",    :to => "static_pages#about"
  get "contacts", :to => "static_pages#contacts"
end

Therefore, your routes to the about page should be about_path instead.