[RUBY] [Rails] Implémentation de la fonction de retrait utilisateur

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.

1. Définition du statut de membre

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)

2. Description de l'itinéraire

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

3. Créez une action

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

4. Créez un lien

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

[Rails] Implémentation de la fonction de retrait utilisateur
[Rails] Implémentation de la fonction de catégorie
[Rails] Implémentation de la fonction tutoriel
[Rails] Implémentation d'une fonction similaire
[Rails] Implémentation de la suppression logique utilisateur
[Rails] Implémentation asynchrone de la fonction similaire
[Rails] Implémentation de la fonction de prévisualisation d'image
[Rails] À propos de la mise en œuvre de la fonction similaire
[Rails] Implémentation de la fonction d'exportation CSV
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (2)
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (1)
Rails [Pour les débutants] Implémentation de la fonction de commentaire
Implémentation de la fonction d'authentification des utilisateurs à l'aide de devise (3)
[Ruby on rails] Implémentation d'une fonction similaire
Implémentation de la fonction de recherche
Mise en œuvre de la fonction de pagénation
[Rails] Implémentation de la fonction de recherche en utilisant le ransack de gem
Implémentation de la fonction de connexion Ruby on Rails (Session)
[Rails] Implémentation de la fonction d'agrandissement d'image à l'aide de lightbox2
Implémentation de la suppression d'ajax dans Rails
Implémentation de la fonction de recherche floue Rails
[Rails] Implémenter la fonction de recherche d'utilisateurs
Implémentation de la fonction de recherche séquentielle
Implémentation d'une fonction similaire (Ajax)
Implémentation de la fonction de prévisualisation d'image
Mise en œuvre de la fonction déroulante de catégorie
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "Préparation"
[Rails] Implémentation de la fonction de catégorie multicouche à l'aide de l'ascendance "seed edition"
[Rails] Implémentation de la fonction de catégorie multicouche à l'aide de l'ascendance "Formulaire de création"
Mise en place de la fonction de tri des rails (affichés par ordre de nombre de like)
[Rails] Implémentation de fonctions de catégorie plusieurs à plusieurs
[Rails] Implémentation de la fonction de catégorie d'ascendance gemme
[Ruby on Rails] Implémentation de la fonction de commentaire
[Rails] Commentaire mémo de procédure d'implémentation
Implémentation d'une fonction similaire en Java
[Rails] Implémentation de la fonction coupon (avec fonction de suppression automatique par traitement par lots)
[Rails] Implémentation de la fonction de balise à l'aide de la fonction agit-as-taggable-on et de la fonction de complétion d'entrée de balise à l'aide de tag-it
[Rails] Ajout de la fonction de commentaire Ruby On Rails
Rails Ajout d'une fonction de connexion facile et facile
[Retrait des rails] Créez une fonction de retrait simple avec des rails
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
Échafaudage de procédure d'implémentation de fonction CRUD de base
[Rails] Mise en œuvre de la validation qui maintient l'unicité