0

我正在关注来自 railstutorial.org 的 Michael Hartl 的截屏视频。根据第 5 章,我将 config/routes.rb 更改为:

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

和 _footer.html.erb 到:

  • <%= link_to "关于", about_path %>
  • <%= link_to "联系人", contact_path %>

和 _header.html.erb 到:

 <% logo = image_tag("logo.png", :alt => "Sample App", :class => "round") %>
 <%= link_to logo, root_path %>
 <nav class="round">
    <ul>
      <li><%= link_to "Home", root_path %></li>
      <li><%= link_to "Help", help_path %></li>

我是 Ruby on Rails 的新手。我在浏览器中收到路由错误

没有路线匹配“/pages/contact”

我正在使用 ruby​​ 1.9.2p180(2011-02-18 修订版 30909)[x86_64-linux]、rails 3.0.7 和 gem 1.6.2 请帮忙。

4

2 回答 2

1

您的路线设置了一个级别。/pages/contact 没有路由,根据您的路由文件,正确的路由是“/contact”。

于 2011-05-07T19:32:22.193 回答
0

对于后来者,我也遇到了同样的问题。本教程中的代码不应end在这些match语句之后添加。如果您查看 config/routes.rb 的最后一行,您会看到end那里。这是你唯一需要的结局。

代替:

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

它应该是:

SampleApp::Application.routes.draw do
  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'
  root :to => 'pages#home'

 # All those commented out rules
 # All those commented out rules
 # All those commented out rules
end
于 2012-01-20T15:41:39.570 回答