当我运行服务器浏览器时,请显示以下内容:
Routing Error
No route matches [GET] "/static_pages/home"
Try running rake routes for more information on available routes.
Rake路线向我展示了这一点:
root / static_pages#home
help /help(.:format) static_pages#help
about /about(.:format) static_pages#about
contact /contact(.:format) static_pages#contact
我的routes.rb文件:
MyApp::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
有人有个主意吗?
答案 0 :(得分:8)
没有为网址设置'/ static_pages / home'
虽然root指向带有action home的static_pages控制器,但它仍然响应路径'/'而不是'/ static_pages / home'
如果你添加
match '/static_pages/home', :to =>'static_pages#home'
您将获得'/ static_pages / home'
的预期回复答案 1 :(得分:5)
步骤5.3.3 Rails tutorial
您无需刷新页面
http://localhost:3000/static_pages/home
但只能通过
更改网址http://localhost:3000/
因为您将'static_pages / home'定义为root'/'。
对我来说它有效
答案 2 :(得分:2)
当我遵循Ruby on Rails教程时,我遇到了与szatan相同的错误。
该错误是因为,之前我们测试的网址是http://localhost:3000/static_pages/help
,因为操作是在static_pages中。但是,从
routes.rb
后
get 'static_pages/help' to
match '/help', to: 'static_pages#help
网址应更改为http://localhost:3000/help
因为我们告诉Rails服务器将路径/help
路由到static_pages#help
。我们不应指望用户知道路径/static_pages/help
。
答案 3 :(得分:1)
请记住删除“public / index.html”文件。
您可以正确定义所有路线,但如果您保留此文件,则无法正确路由。
答案 4 :(得分:1)
当我到达教程中的这一点时,我遇到了这个问题。当我将浏览器指向"http://localhost:3000/"
并重新加载时,它已得到解决。
答案 5 :(得分:0)
您可以指向"/"
或root_path
而不是'/static_pages/home'
。无需将两条路线指向同一个地方......