路由错误没有路由匹配[GET]“/ static_pages / home”,教程

时间:2012-07-29 15:25:19

标签: ruby-on-rails ruby ruby-on-rails-3

当我运行服务器浏览器时,请显示以下内容:

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

有人有个主意吗?

6 个答案:

答案 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'。无需将两条路线指向同一个地方......