Bonjour, c'est tt_tsutsumi. Cette fois, je souhaite implémenter la fonction de retrait de l'utilisateur. J'espère que cet article aide quelqu'un.
J'aimerais écrire des articles sur l'inscription et l'édition de nouveaux utilisateurs de temps en temps. Cette fois, nous mettrons en œuvre la fonction de retrait de l'utilisateur et empêcherons les utilisateurs désabonnés de se connecter.
Définissez le statut de membre de l'utilisateur avec enum (type booléen). Le type booléen est un type qui enregistre les valeurs booléennes et seules deux situations peuvent être enregistrées. Cette fois, nous utiliserons ce type car l'utilisateur a deux choix: ** membre valide ou membre retiré **. De plus, si ** is_active ** est ** true (membre valide) **, définissez pour vous connecter.
user.rb
enum is_active: {Available: true, Invalid: false}
#Vrai pour les membres valides, faux pour les membres retirés
def active_for_authentication?
super && (self.is_active === "Available")
end
#is_Si active est valide, un membre valide(Vous pouvez vous connecter)
routes.rb
resources :users do
member do
get "check"
#Obtenir le statut de membre utilisateur
patch "withdrawl"
#Mettre à jour l'état d'adhésion des utilisateurs
end
end
Ensuite, créez une action sur le contrôleur.
users_controller
def check
@user = User.find(params[:id])
#Rechercher des informations utilisateur
end
def withdrawl
@user = User.find(current_user.id)
#L'utilisateur actuellement connecté@Stocker dans l'utilisateur
@user.update(is_active: "Invalid")
#Modifiez les informations d'enregistrement sur Invalid avec la mise à jour
reset_session
#Réinitialiser l'identifiant de session
redirect_to root_path
#Chemin vers la racine spécifiée
end
private
def user_params
params.require(:user).permit(:active)
end
Créez un lien et désabonnez l'utilisateur. Puisque la méthode est mise à jour au lieu d'être supprimée, elle sera décrite comme un patch.
ruby:withdrawl.html.erb
<div class="withdrawl">
<%= link_to "Withdrawal", withdrawl_user_path(@user.id), method: :patch %>
</div>
Vous pouvez maintenant implémenter la fonction de retrait de l'utilisateur et empêcher les utilisateurs désabonnés de se connecter. Merci pour votre visite !!
Recommended Posts