i create new user. after creating should received confirmation mail. when open mailcatcher(http://127.0.0.1:1080/)... nothing!
i use mailcatcher v. 0.5.12, rails 3.2.22
in development.rb added:
# don't care if mailer can't send config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 } config.action_mailer.raise_delivery_errors = true what wrong settings? how check error? please, help, thank you.
update
confirmationcontroller:
class confirmationscontroller < devise::confirmationscontroller def new super resource.login = current_user.email if user_signed_in? end protected def after_resending_confirmation_instructions_path_for(resource_name) if user_signed_in? home_path else new_session_path(resource_name) end if is_navigational_format? end # path used after confirmation. def after_confirmation_path_for(resource_name, resource) '/profile' end end userscontrollers.rb:
# encoding: utf-8 class userscontroller < applicationcontroller before_filter :require_admin, only: [:add_moderator, :remove_moderator, :destroy] before_filter :require_moderator, only: [:edit, :update, :paid_on, :paid_off, :ban, :unban] before_filter :authenticate_user!, except: [:new, :create] before_filter :load_user, only: [:show, :photos, :videos, :audios, :buy_rating, :do_buy_rating, :add_moderator, :remove_moderator, :edit, :update, :paid_on, :paid_off, :ban, :unban, :destroy, :add_funds, :mute, :unmute] layout :determine_layout def new @user = user.new @invite = invite.find_by_code(session[:invite]) if session[:invite].present? @user.email = @invite.email if @invite end def create @user = user.new(params[:user]) raise activerecord::recordinvalid.new(@user) unless verify_recaptcha(model: @user, message: 'message') @invite = invite.find_by_code(session[:invite]) if session[:invite].present? user.transaction @user.save! @user.current_password = @user.password @user.theme_ids = params[:user][:theme_ids] @user.group_ids = [114, 130] @user.save! end if @invite @invite.new_user = @user @invite.use! end redirect_to @user rescue activerecord::recordinvalid render :new end ......................................................... ......................................................... private def determine_layout return 'welcome' if %w(new create).include?(params[:action]) return 'dating' if params[:action]=='search' 'inner' end end registrationscontroller.rb:
# encoding: utf-8 class registrationscontroller < devise::registrationscontroller def create if verify_recaptcha super else flash.delete :recaptcha_error build_resource resource.valid? resource.errors.add(:base, :invalid_recaptcha) # clean_up_passwords(resource) render :new end rescue activerecord::recordnotunique render :new end def update redirect_to '/settings' end # def update # # required settings form submit when password left blank # if params[:user][:password].blank? # params[:user].delete("password") # params[:user].delete("current_password") # end # # @user = user.find(current_user.id) # if update_user # set_flash_message :notice, :updated # # sign in user bypassing validation in case password changed # sign_in @user, :bypass => true # redirect_to after_update_path_for(@user) # else # render "edit" # end # end def edit redirect_to '/settings' end def destroy current_password = params[:user].delete(:current_password) if resource.valid_password?(current_password) resource.mark_as_deleted! render inline: "$('body').fadeout(3000, function() { document.location = 'http://ya.ru'; })" else render inline: "$.flash.error('error')" end # devise.sign_out_all_scopes ? sign_out : sign_out(resource_name) # set_flash_message :notice, :destroyed if is_navigational_format? # respond_with_navigational(resource){ redirect_to after_sign_out_path_for(resource_name) } end protected def after_sign_up_path_for(resource) '/profile' end end
code without devise.mail_confirmation_instructions(@user).deliver. realized, in fine
Comments
Post a Comment