【发布时间】:2013-03-14 22:16:48
【问题描述】:
我不小心在我的工作目录上调用了git rm ./ -r 并删除了我的所有代码。没问题,我只是简单地调用了git pull 来获取最新的代码更新,但是现在我不断收到来自 Devise 的路由错误。
在我不得不打电话给bundle install 之后。从这里开始,我不断收到错误:
Routing Error
No route matches {:controller=>"devise/registrations"}
Try running rake routes for more information on available routes.
所以我做的第一件事就是运行rake routes 来查看路线是否存在并且确实存在:
members_ban GET /members/ban(.:format) members#ban
members_unban GET /members/unban(.:format) members#unban
members GET /members(.:format) members#index
POST /members(.:format) members#create
new_member GET /members/new(.:format) members#new
edit_member GET /members/:id/edit(.:format) members#edit
member GET /members/:id(.:format) members#show
PUT /members/:id(.:format) members#update
DELETE /members/:id(.:format) members#destroy
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
root / home#index
我将以下代码 <%= link_to "New", new_user_registration %> 添加到我的主页视图文件中,以查看是否可以获得更多信息:
我收到以下错误:https://gist.github.com/anonymous/5165745
我的路线文件:
Eveco::Application.routes.draw do
get 'members/ban'
get 'members/unban'
resources :members
devise_for :users
root :to => 'home#index'
end
扩展:所以我通过控制台和错误日志找到了问题:
Started GET "/users/sign_up" for 127.0.0.1 at 2013-03-14 23:51:38 +0100
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/shared/_links.erb (0.0ms)
Rendered devise/registrations/new.html.erb within layouts/application (5.0ms)
Rendered layouts/_nav.html.erb (0.0ms)
Rendered layouts/_bread.html.erb (2.0ms)
Completed 500 Internal Server Error in 17ms
ActionController::RoutingError (No route matches {:controller=>"devise/registrations"}):
app/views/layouts/_bread.html.erb:11:in `_app_views_layouts__bread_html_erb__280287340_55609968'
app/views/layouts/application.html.erb:27:in `_app_views_layouts_application_html_erb__58597651_53376372'
我为我的应用程序实现面包屑的糟糕方式似乎存在问题。基本上我只想在其中显示控制器和方法,所以我使用这个:
<div class="row">
<div class="span12">
<ul class="breadcrumb">
<li><%= link_to "Home", root_path %> <span class="divider">/</span></li>
<% if params[:controller] != 'devise' && params[:controller] != 'users' %>
<% if params[:controller] != 'home' %>
<li>
<a href="#">
<%=
link_to params[:controller].to_s.capitalize,
:controller => params[:controller]
%>
<span class="divider">/</span>
</li>
<li class="active">
<%= params[:action].to_s.capitalize %>
</li>
<% end %>
<% end %>
</ul>
</div>
</div>
如果我从应用程序中删除这个部分,路由就像一个魅力。但是现在它提出了一个新问题。
【问题讨论】:
-
听起来 Devise 本身已不再安装。您是说运行
bundle install时出错? -
在我执行 git pull 之后,我尝试运行服务器,直到我调用 bundle install 时它才会让我运行。但是,当我调用
<%= link_to "New", new_user_registration_path %>时,我不再收到我链接的错误,但我引用的第一个错误仍然存在。 -
@kellax 你做了什么来“不再”得到那个错误?
标签: ruby-on-rails ruby-on-rails-3 devise ruby-on-rails-3.2