Rails develops reset password does not work

I use the application in the rails 3 application. I developed a fully functional one, but the “forgot password” function decided to stop working. When I enter the email address and click the "Send me reset" button, I will be redirected to the login page, which displays a flash notification that says please log in first. I also found out that “send me reset instructions” is trying to access http://0.0.0.0{000/ users/ password . I used to work, and now he decided to stop working. I do not think this has anything to do with any form of authorization, such as ACL9. Someone had the same problem. Are there any possible solutions to fix it.

Devise / Password_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 rescue => e; puts e.backtrace; raise e; 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? flash_message = resource.active_for_authentication? ? :updated : :updated_not_active set_flash_message(:notice, flash_message) 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 

  ProjectRails::Application.configure do # Settings specified here will take precedence over those in config/application.rb # In the development environment your application code is reloaded on # every request. This slows down response time but is perfect for development # since you don't have to restart the webserver when you make code changes. config.cache_classes = false # Log error messages when you accidentally call methods on nil. config.whiny_nils = true # Show full error reports and disable caching config.consider_all_requests_local = true config.action_view.debug_rjs = true config.action_controller.perform_caching = false # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = true # Print deprecation notices to the Rails logger config.active_support.deprecation = :log # Only use best-standards-support built into browsers config.action_dispatch.best_standards_support = :builtin config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true #SMTP #SMTP config.action_mailer.default_url_options = { :host => "0.0.0.0:3000" } config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "smtp.example.example.ltd.uk", :user_name => " example.service@example.co.uk ", :password => "1Plonker", :authentication => "login" } end config/intializers/devise config.mailer_sender = " Project@example.co.uk " 
+4
source share
2 answers

Run the rake routes to verify that it is routing to the right place. Also check your view / password / new.html.erb and make sure the URL is routed to your login path and not: url => password_path (resource name) as this is a common problem. This should solve your problem. Also change your

 :location => after_sending_reset_password_instructions_path_for(resource_name)) 

to

 :location => (whatever the login path is) 

:-)

+9
source

You work, this is a development environment, right? You checked the correctness:

 # config/environments/development.rb config.action_mailer.raise_delivery_errors = true config.action_mailer.perform_deliveries = true config.action_mailer.default_url_options = { :host => 'mydomain.com' } # config/initializers/devise.rb config.mailer_sender = " youremail@domain.com " 
+1
source

All Articles