Ruby on rails Rails错误-未定义的局部变量或方法'signout_path';
错误来自app/views/layouts/_header.html.erb。该行是我的app/views/layouts/_header.html.erb的一部分,如下所示:Ruby on rails Rails错误-未定义的局部变量或方法'signout_path';,ruby-on-rails,Ruby On Rails,错误来自app/views/layouts/_header.html.erb。该行是我的app/views/layouts/_header.html.erb的一部分,如下所示: <header class="navbar navbar-fixed-top navbar-inverse"> <div class="navbar-inner"> <div class="container"> <%= link_to "sample a
<header class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner">
<div class="container">
<%= link_to "sample app", root_path, id: "logo" %>
<nav>
<ul class="nav pull-right">
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Help", help_path %></li>
<% if signed_in? %>
<li><%= link_to "Users", '#' %></li>
<li id="fat-menu" class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Account <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><%= link_to "Profile", current_user %></li>
<li><%= link_to "Settings", '#' %></li>
<li class="divider"></li>
<li>
<%= link_to "Sign out", signout_path, method: "delete" %>
</li>
</ul>
</li>
<% else %>
<li><%= link_to "Sign in", signin_path %></li>
<% end %>
</ul>
</nav>
</div>
</div>
</header>
-
-
好的,现在已经很晚了,我不会等待您输出rake routes或routes.rb文件。
正如我在评论中提到的,进入shell,将cd放入应用程序目录并运行
rake routes
这将显示所有可能的路线。很可能已经有了退出流程的路线
如果没有,则必须在/config/routes.rb中创建路由,并将其定向到正确的控制器。比如说
delete '/logout', to: 'sessions#destroy', as: 'signout'
其中“delete”是请求,/logout“我的示例url”,“sessions”是控制器,“destroy”是操作,“signout”是方法名(如代码所示)。
你可以直接写
delete '/logout', to: 'sessions#destroy'
在这种情况下,您必须将方法名signout\u path
替换为url
最后一个提示:注销也可以通过GET而不是DELETE完成。也许您只使用GET方法创建了一个路由?在
rake routes
的输出中也应该很明显 在shell中运行rake routes,查看路由的命名方式。可以将routes.rb文件放入其中吗?