Apane101
Apane101

Reputation: 1123

No route matches [GET] "/static_pages/home.html.erb"

I am following Michale Hartl's tutorial and I am currently at this step:

Listing 5.23. Adding a mapping for the root route. config/routes.rb

SampleApp::Application.routes.draw do
root to: 'static_pages#home'
match '/help', to: 'static_pages#help'
match '/about', to: 'static_pages#about'
match '/contact', to: 'static_pages#contact'
end

I have copied his exact coding to my config/routes.rb and continue to get a Routing Error:

Routing Error

No route matches [GET] "/static_pages/home.html".

--

Not sure what to do at this point to get my home routed as the index, and to be able to use root_path to link back to 'Home'.

Upvotes: 3

Views: 2926

Answers (4)

Conor
Conor

Reputation: 494

this code is correct

SampleApp::Application.routes.draw do

root :to => 'static_pages#home'

get '/help' => 'static_pages#help'

get '/about' => 'static_pages#about'

get '/contact' => 'static_pages#contact'

end

You do not have to delete the index page, the rspec test in the tutorial is not wrong, this is the updated code with current available methods

describe "Home page" do

it "should have the content 'Sample App'" do

  visit '/'

  page.should have_content('Sample App')

end

end

This is using ruby -v ruby 2.0.0p47 and rails -v Rails 4.0.3

you can also get a failure if your using before { visit help_path }, using the Rails Console and checking the path app.help_path confirms 'before { visit help_path } is correct but if this code is not in spec/rspec_helpers.rb then the test will fail because it cannot find the path

Named routes should work if you put the following in rspec_helper.rb:

Rspec.configure do |config| config.include Rails.application.routes.url_helpers ... end

Upvotes: 1

rupweb
rupweb

Reputation: 3328

You need to delete or rename the public/index.html and then it will work.

Upvotes: 0

Nathan Katz
Nathan Katz

Reputation: 809

Remove ../static_pages/.. from the URL you've entered in the browser.

Upvotes: 4

Uladz Kha
Uladz Kha

Reputation: 2364

SampleApp::Application.routes.draw do
root :to => 'static_pages#home'
get '/help' => 'static_pages#help'
get '/about' => 'static_pages#about'
get '/contact' => 'static_pages#contact'
end

this code is right.

Upvotes: 0

Related Questions