没有路线匹配[GET]“/static_pages/home.html.erb”

时间:2013-01-26 20:24:04

标签: ruby-on-rails ruby routes

我正在关注Michale Hartl的教程,目前我正在这一步:

清单5.23。添加根路由的映射。配置/ 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

我已将他的确切编码复制到我的config / routes.rb并继续收到路由错误:

路由错误

没有路线匹配[GET]“/static_pages/home.html”。

-

此时不知道该怎么做才能将我的主页作为索引进行路由,并且能够使用root_path链接回“Home”。

4 个答案:

答案 0 :(得分:4)

从您在浏览器中输入的网址中删除../static_pages/..

答案 1 :(得分:1)

这段代码是正确的

SampleApp :: Application.routes.draw做

root :to => 'static_pages#home'

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

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

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

您不必删除索引页面,教程中的rspec测试没有错,这是使用当前可用方法的更新代码

描述"主页"做

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

  visit '/'

  page.should have_content('Sample App')

end

这是使用ruby -v ruby​​ 2.0.0p47和rails -v Rails 4.0.3

如果您在{visit help_path}之前使用,使用Rails控制台并检查路径app.help_path确认&{39;之前{visit help_path}是正确的,但是如果此代码不在spec /中rspec_helpers.rb然后测试将失败,因为它找不到路径

如果将以下内容放在rspec_helper.rb中,则命名路由应该有效:

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

答案 2 :(得分:0)

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

这段代码是对的。

答案 3 :(得分:0)

您需要删除或重命名public / index.html,然后才能运行。