【发布时间】:2016-10-30 16:09:16
【问题描述】:
我使用导航栏(使用 rails 上的设计;包含在我的 dashboard.html.erb 中)在登录时工作正常;但是,当想在所有页面中使用它并将其包含在 application.html.erb 中时,我收到此错误:ActionController::UrlGenerationError in Devise::Sessions#new
附加信息:“没有路线匹配 {:action=>"index", :controller=>"devise/users"}"
这是我的路线.rb:
Rails.application.routes.draw do
root 'dashboard#index'
devise_for :users
resources :users
我应该如何在 DRY 之后在 Rails 中实现这一点? (我是 Rails 新手)
这是我的导航栏:
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand"><%= Rails.application.class.parent_name %></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><%= link_to 'Dashboard', root_path %></li>
<li><%= link_to 'Users', controller: 'users' %></li>
<li><a href="#contact">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><p> You are logged in as <%= current_user.email %></p></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li class="dropdown-header">Nav header</li>
<li><a href="#">Separated link</a></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><%= link_to "Log out", destroy_user_session_path, method: :delete %></li>
<li><%= link_to edit_user_registration_path do %><strong><%= current_user.first_name %></strong><% end %></li>
</ul>
</div><!--/.nav-collapse -->
</div>
【问题讨论】: