Hallo, das ist tt_tsutsumi. Dieses Mal möchte ich die Benutzerentzugsfunktion implementieren. Ich hoffe dieser Artikel hilft jemandem.
Ich möchte von Zeit zu Zeit Artikel über die Registrierung und Bearbeitung neuer Benutzer schreiben. Dieses Mal implementieren wir die Funktion zum Zurückziehen von Benutzern und verhindern, dass sich nicht abonnierte Benutzer anmelden.
Legen Sie den Mitgliedsstatus des Benutzers mit enum (boolescher Typ) fest. Der boolesche Typ ist ein Typ, der boolesche Werte speichert, und es können nur zwei Situationen registriert werden. Dieses Mal verwenden wir diesen Typ, da der Benutzer zwei Möglichkeiten hat: ** gültiges Mitglied oder zurückgezogenes Mitglied **. Wenn ** is_active ** ** true (gültiges Mitglied) ** ist, müssen Sie sich anmelden.
user.rb
enum is_active: {Available: true, Invalid: false}
#Richtig für gültige Mitglieder, falsch für zurückgezogene Mitglieder
def active_for_authentication?
super && (self.is_active === "Available")
end
#is_Wenn aktiv gültig ist, ein gültiges Mitglied(Sie können sich anmelden)
routes.rb
resources :users do
member do
get "check"
#Benutzermitgliedschaftsstatus abrufen
patch "withdrawl"
#Aktualisieren Sie den Status der Benutzermitgliedschaft
end
end
Erstellen Sie als Nächstes eine Aktion auf dem Controller.
users_controller
def check
@user = User.find(params[:id])
#Hier finden Sie Benutzerinformationen
end
def withdrawl
@user = User.find(current_user.id)
#Der aktuell angemeldete Benutzer@Im Benutzer speichern
@user.update(is_active: "Invalid")
#Ändern Sie die Registrierungsinformationen bei Aktualisierung in "Ungültig"
reset_session
#Sitzungs-ID zurücksetzen
redirect_to root_path
#Pfad zum angegebenen Stamm
end
private
def user_params
params.require(:user).permit(:active)
end
Erstellen Sie einen Link und melden Sie den Benutzer ab. Da die Methode aktualisiert anstatt gelöscht wird, wird sie als Patch bezeichnet.
ruby:withdrawl.html.erb
<div class="withdrawl">
<%= link_to "Withdrawal", withdrawl_user_path(@user.id), method: :patch %>
</div>
Jetzt können Sie die Funktion zum Zurückziehen von Benutzern implementieren und verhindern, dass sich nicht abonnierte Benutzer anmelden. Danke für Ihren Besuch !!
Recommended Posts