4

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

Routing Error

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

Try running rake routes for more information on available routes. 

耙路线向我展示了这一点:

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

有人有想法吗?

4

7 回答 7

8

没有为 url '/static_pages/home' 设置路由

尽管 root 指向带有动作 home 的 static_pages 控制器,但它仍然响应路径 '/' 而不是 '/static_pages/home'

如果你添加

match '/static_pages/home', :to =>'static_pages#home'

您将获得“/static_pages/home”的预期响应

于 2012-07-29T15:28:05.533 回答
5

步骤 5.3.3 Rails 教程

您不必刷新页面

http://localhost:3000/static_pages/home

但只能通过

http://localhost:3000/

因为您将“static_pages/home”定义为根“/”。

对我来说它有效

于 2013-11-28T15:45:53.293 回答
2

当我遵循 Ruby on Rails 教程时,我遇到了与 szatan 相同的错误。错误是因为之前我们测试 URL 是http://localhost:3000/static_pages/help因为操作在 static_pages 中。但是,routes.rb

get 'static_pages/help' to
match '/help',    to: 'static_pages#help

URL 应该更改为,http://localhost:3000/help 因为我们告诉 Rails 服务器将路径路由/helpstatic_pages#help. 我们不应该期望用户知道路径/static_pages/help

于 2012-12-03T03:09:53.830 回答
1

请记住删除“public/index.html”文件。

您可以正确定义所有路由,但如果您离开此文件,您将无法正确路由它。

于 2013-07-31T19:59:58.413 回答
1

当我在教程中到达这一点时,我遇到了这个问题。当我将浏览器指向"http://localhost:3000/"并重新加载时,它就解决了。

于 2013-08-20T16:04:20.323 回答
0

您可以指向"/"root_path代替'/static_pages/home'. 无需将两条路线指向同一个地方...

于 2012-07-29T17:37:56.810 回答
0

您应该添加 :as 关键字来定义 XXX_path,例如 root :to => 'static_pages#home'

match '/', to: 'static_pages#home', :as => :home
match '/help',    to: 'static_pages#help', :as => :help
  match '/about',   to: 'static_pages#about', :as => :about
  match '/contact', to: 'static_pages#contact', :as => :contact
于 2012-08-02T01:41:54.290 回答