RailsTutorial:配置路由后出错

时间:2014-10-30 17:13:19

标签: ruby-on-rails railstutorial.org

我正在关注Michael Hartl的rails教程(第5章,第5.3.4节)。我添加了所有路线,但我不能像他描述的那样关注它们。首先,我不确定是否要在地址栏中手动输入它们,或者它们是否应该通过单击链接来工作。如果我手动输入它们但链接没有,它可以工作。其次,路由测试无法找到2条根路由。我试图找到任何错误但无济于事。以下是我认为与根路径有关的部分。

的routes.rb

Rails.application.routes.draw do
  root             'static_pages#home'
  get 'help'    => 'static_pages#help'
  get 'about'   => 'static_pages#about'
  get 'contact' => 'static_pages#contact' 

_header.html.erb

<header class="navbar navbar-fixed-top navbar-inverse">
  <div class="container">
    <%= link_to "sample app", 'root_path', id: "logo" %>
    <nav>
      <ul class="nav navbar-nav pull-right">
        <li><%= link_to "Home",   'root_path' %></li>
        <li><%= link_to "Help",   'help_path' %></li>
        <li><%= link_to "Log in", '#' %></li>
      </ul>
    </nav>
  </div>
</header>

site_layout_test.rb

class SiteLayoutTest < ActionDispatch::IntegrationTest
  test "layout links" do
    get root_path
    assert_template 'static_pages/home'
    assert_select "a[href=?]", root_path, count: 2
    assert_select "a[href=?]", help_path
    assert_select "a[href=?]", about_path
    assert_select "a[href=?]", contact_path
  end
end

我觉得非常愚蠢,因为我应该能够解决这个问题,但这对我来说都是如此新鲜。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您只是链接到字符串'root_path''help_path',这些字符串不起作用。那些是路径助手,你需要调用的方法。只需改变一下:

<li><%= link_to "Home",   'root_path' %></li>

对此:

<li><%= link_to "Home", root_path %></li>

同样,只要你看到它,它就应该有效。