当我点击<%= link_to“忘记密码?”,new_password_path(resource_name)%>
它需要我
http://0.0.0.0:3000/users/password/new
与路由错误
ActionController::RoutingError in Devise/passwords#new Showing app/views/devise/passwords/new.html.erb where line #3 raised: No route matches {:controller=>"users",:action=>"password",:id=>:user}
编辑:
new.html.erb此行出错
<%= form_for(resource,:as => resource_name,:url => password_path(resource_name),:html => { :method => :post }) do |f| %>
Passwords_controller.rb
class Devise::PasswordsController < ApplicationController #prepend_before_filter :require_no_authentication include Devise::Controllers::InternalHelpers access_control do allow all end # GET /resource/password/new def new build_resource({}) render_with_scope :new end # POST /resource/password def create self.resource = resource_class.send_reset_password_instructions(params[resource_name]) if successful_and_sane?(resource) set_flash_message(:notice,:send_instructions) if is_navigational_format? respond_with({},:location => after_sending_reset_password_instructions_path_for(resource_name)) else respond_with_navigational(resource){ render_with_scope :new } end end # GET /resource/password/edit?reset_password_token=abcdef def edit self.resource = resource_class.new resource.reset_password_token = params[:reset_password_token] render_with_scope :edit end # PUT /resource/password def update self.resource = resource_class.reset_password_by_token(params[resource_name]) if resource.errors.empty? set_flash_message(:notice,:updated) if is_navigational_format? sign_in(resource_name,resource) respond_with resource,:location => redirect_location(resource_name,resource) else respond_with_navigational(resource){ render_with_scope :edit } end end protected # The path used after sending reset password instructions def after_sending_reset_password_instructions_path_for(resource_name) new_session_path(resource_name) end end
解决方法
我想你在routes.rb中缺少这一行
devise_for :users
如果这对您没有帮助,那么我建议您遵循这两个railscast:
> http://railscasts.com/episodes/209-introducing-devise
> http://railscasts.com/episodes/210-customizing-devise
你会在那里找到所有必要的信息.