Die Bestätigungsmail wird erneut gesendet, auch nach Bestätigung per E-Mail. Das Benutzerattribut "devise" unconfirmed_email ändert sich nicht in einen NULL-Wert, obwohl das Attribut "confirmed_at" die Uhrzeit anzeigt, zu der es bestätigt wurde.Devise Bestätigungsmail wird erneut gesendet
Ich bin mit Schienen 5 und entwickeln gem Version 4.2
Dies ist Bestätigung Controller
def create
begin
email = params[resource_name][:email]
rescue
email = ""
end
user = User.find_by_email(email)
if poster and ["blocked", "deactivated"].include?(user.status)
poster.errors.add(:email, "has been #{user.status}")
self.resource = user
respond_with(self.resource)
return false
end
super
end
Diese Funktion E-Mail in den Registrierungen Controller überprüfen wird.
def verify_email
@user = User.find_by_confirmation_token(params[:token])
if @user
if @user.confirmed?
flash[:error] = "Your Account is already verified please try to login"
redirect_to new_poster_session_path
else
@user.confirmed_at = Time.now
#@user.confirmation_token = nil
@user.save
sign_in @user
token = Devise.friendly_token
current_user.update_attribute :current_sign_in_token, token
session[:sign_in_token] = token
redirect_to root_path
end
else
@user = User.new
@company = Company.new
@city = City.new
# @region = Location::Region.new
flash.now[:error] = I18n.t("applicant.confirmations.invalid_or_expired_token")
flash[:regenerate_token] = I18n.t("applicant.confirmations.invalid_or_expired_token_regenerate", :path => new_user_confirmation_path)
respond_with_navigational(resource) { render :new }
end
Ende
Der obige Code funktioniert gut mit einem anderen Modell und da kein Fehler angezeigt wird. Ich weiß nicht, wie ich das anstellen soll. Bitte helfen Sie!
Sorry, meine schlechten, Tippfehler Fehler. Es ist nur "Benutzer", aber keine Ahnung, warum es nicht funktioniert. – user3440743