我正在关注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
我觉得非常愚蠢,因为我应该能够解决这个问题,但这对我来说都是如此新鲜。在此先感谢您的帮助。
答案 0 :(得分:1)
您只是链接到字符串'root_path'
和'help_path'
,这些字符串不起作用。那些是路径助手,你需要调用的方法。只需改变一下:
<li><%= link_to "Home", 'root_path' %></li>
对此:
<li><%= link_to "Home", root_path %></li>
同样,只要你看到它,它就应该有效。