没有路由匹配[GET]“/ static_pages / contact_path”

时间:2014-01-17 05:29:37

标签: ruby-on-rails rails-routing

这是我尝试访问我的联系页面时遇到的错误: 没有路由匹配[GET]“/ static_pages / contact_path”

这是我的routes.rb。

SampleApp::Application.routes.draw do
get "static_pages/home"
match '/help',    to: 'static_pages#help',    via: 'get'
match '/about',   to: 'static_pages#about',   via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
end

这是我的控制器。

class StaticPagesController < ApplicationController

  def home
  end

  def help
  end

  def about
  end

  def contact
  end
end

这是我的文件home.html.erb

  • &lt;%= link_to“联系人”,“contact_path”%&gt;
  • 请注意,当我在roots.rb中使用home的匹配语法时,主页不起作用。我把它切换到get方法只是为了让我继续工作。我希望匹配语法能够正常工作,因为这是我为comsci课程尝试的一种技巧。有关为什么我没有得到根的任何想法?根据我的控制器,我应该有一个,是吗?

    2 个答案:

    答案 0 :(得分:2)

    您的路线会创建contact_path辅助方法,您正在使用字符串:

    <%= link_to "Contact", 'contact_path' %>
    # ---------------------^------------^
    

    你要打电话给帮手:

    <%= link_to "Contact", contact_path %>
    

    如果您将字符串传递给link_to,它会创建一个<a href="contact_path">链接,相关网址将被添加到当前网址上,以生成您所在的迷路/static_pages/contact_path网址看到。

    答案 1 :(得分:0)

    link_to应为

    <%= link_to "Contact", contact_path %>