def create
@user = User.create(user_params)
if @user.valid?
charge = StripeWrapper::Charge.create(amount: 999, card: params[:stripeToken], description: "Sign up charge for #{@user.email}")
if charge.successful?
@user.save
User.inviter_and_invited_follow_each_other(@user)
AppMailer.delay.welcome(current_user)
session[:user_id] = @user.id
flash[:notice] = "You have successfully registered and will be logged in."
redirect_to root_path
else
flash[:notice] = charge.error_message
render :new
end
else
render :new
end
end
L'utilisateur économise même lorsque charge.successful? renvoie false. Rien d'autre ne se passe, car aucun courrier électronique n'est envoyé, session [: user_id] n'est pas défini et n'est pas redirigé vers root_path. Le bloc Else s'exécute et restitue: nouveau et affiche un avertissement indiquant que la carte est refusée.Comment éviter d'enregistrer après avoir créé? Rails
J'essaie d'éviter la création de l'utilisateur si charge.successful? renvoie false. Une idée sur la façon de s'y prendre?
Merci, je ne peux pas croire que je ne l'ai pas comprendre cela. Temps pour une pause! – user2170878