[RUBY] J'ai essayé de résumer à nouveau le projet qui était difficile à première vue

introduction

Poursuite de la précédente "J'ai essayé de résumer une conception difficile à première vue". Cette fois à propos de la fonction de déconnexion. Cliquez ici pour le post précédent expliquant l'introduction de la devise ↓ https://qiita.com/TerToEer_sho/items/b5523ad100d08126a547

Implémentation de la fonction de déconnexion

En premier lieu, le bouton de déconnexion n'est nécessaire que par l'utilisateur connecté. En d'autres termes Si vous êtes connecté, affichez le bouton de déconnexion. </ font> De plus, si vous êtes connecté, vous n'avez pas besoin du bouton de déconnexion. En d'autres termes Si vous n'êtes pas connecté, affichez le bouton de connexion. </ font>

Alors, comment savoir si vous êtes connecté? C'est une autre grande chose à propos de la conception, et il existe des méthodes que vous pouvez utiliser en installant Gemme de périphérique.

user_signed_in? méthode </ font>

Comme traduit en japonais, il renvoie si vous êtes connecté ou non en tant que valeur booléenne (vrai / faux).

Vous êtes connecté → vrai Non connecté → faux

Je ne connais pas les raisons pour lesquelles je peux savoir si je suis connecté.

En utilisant le fait que la valeur booléenne est renvoyée par la méthode user_signed_in?, Le branchement conditionnel est effectué à l'aide de l'instruction if.

En d'autres termes

Ruby:index.html.erb


<% if user_signed_in? %>
 <%= link_to 'Se déconnecter', destroy_user_session_path, method: :delete %>
<% else %>
 <%= link_to 'S'identifier', new_user_session_path %>
 <%= link_to 's'inscrire', new_user_registration_path %>
<% end %>

Si vous écrivez le code en utilisant le fichier de vue Rails comme exemple, il ressemblera à ceci.

Le point d'être prudent est

① Dans la déconnexion de , définissez la méthode HTTP sur "delete" dans le troisième argument de la méthode link_to. </ font> En tant qu'image, cela ressemble à la suppression de l'état connecté. Au fait, si vous ne le définissez pas sur "supprimer", une erreur se produira. La raison en est que la méthode link_to utilise par défaut "get", qui est la méthode HPPT. Lorsque vous lisez link_to, c'est une méthode qui dit "Je vais passer à la destination du lien".

② Concernant le chemin du deuxième argument Au terminal

rails routes

Et confirmez. Sauf indication contraire, la même chose que ci-dessus convient.

point

  • [x] Utilisez la méthode user_signed_in? pour déterminer l'état de connexion.
  • [x] Il est possible de brancher l'affichage en utilisant l'instruction if.
  • [x] Lors de la description de la déconnexion avec la méthode link_to, "method :: delete" est requis comme troisième argument.

finalement

Il peut être implémenté avec moins de travail car la méthode pratique user_signed_in peut être utilisée.

Recommended Posts