【问题标题】:Routing Error, Michael Hartl's Screencasts from railstutorial.org路由错误,来自 railstutorial.org 的 Michael Hartl 的截屏视频
【发布时间】:2011-05-07 19:27:34
【问题描述】:

我正在关注来自 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 到:


和 _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], 导轨 3.0.7 和 gem 1.6.2 请帮忙。

【问题讨论】:

    标签: ruby-on-rails-3 routes rails-routing railstutorial.org


    【解决方案1】:

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

    【讨论】:

    • 非常感谢.. 但我无法访问我的主页
    • 你删除了 public/index.html 吗?如果没有,那么即使在您的 routes.rb 文件中设置了 root :to ,也将始终提供服务。
    【解决方案2】:

    对于后来者,我也遇到了同样的问题。本教程中的代码不应在那些 match 语句之后有 end。如果你查看 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-04
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      相关资源
      最近更新 更多