La principale pierre d'achoppement de ce programme était la méthode link_to
. Bien sûr, je pense comprendre l'utilisation de base, mais l'argument du chemin ne semble pas convenir.
Ce message n'a pas pour but d'expliquer quoi que ce soit, mais pour ma propre lecture du code. Ci-dessous, je vais couper tous les link_to de l'application créée cette fois et les assembler avec comment lire les arguments.
①
ruby:application.html.erb
<%= link_to "Se déconnecter", destroy_user_session_path, method: :delete %>
<%= link_to "Nouveau poste", new_prototype_path %>
Puisque les deux "déconnexion" et "nouveau message" affichés dans l'état de connexion sont des pages et des processus communs à tout le monde, il n'est pas nécessaire de passer un argument dans ().
La page de déconnexion ne diffère pas d'un utilisateur à l'autre et la nouvelle page de publication ne diffère pas d'un utilisateur à l'autre.
Puisque la méthode HTTP de la méthode link_to
est GET par défaut, spécifiez la méthode dans le troisième argument lors de la déconnexion.
②
ruby:application.html.erb
<%= link_to "S'identifier", new_user_session_path %>
<%= link_to "s'inscrire", new_user_registration_path %>
L'idée est la même que ①. Cette fois, il s'affiche lorsque vous n'êtes pas connecté. Étant donné que l'écran de connexion et la nouvelle inscription ne changent pas en fonction de l'utilisateur, aucun argument n'est nécessaire.
③
ruby:application.html.erb
<%= link_to image_tag("logo.png "), root_path %>
root_path n'a pas besoin d'avoir d'argument!
④
ruby:prototypes/show.html.erb
<%= link_to "Éditer", edit_prototype_path(@prototype) %>
<%= link_to "effacer", prototype_path(@prototype), method: :delete %>
La partie à modifier ou supprimer de la page de détails de ce que vous avez publié.
Puisqu'un enregistrement est sélectionné comme @ prototype = Prototype.find (params [: id])
dans l'action show, il est possible de déterminer quel prototype éditer ou supprimer.
⑤
ruby:prototypes/_prototype.html.erb
<%= link_to prototype.title, prototype_path(prototype.id) %>
<%= link_to image_tag(prototype.image), prototype_path(prototype.id) %>
user_path passe à la page Ma page de l'utilisateur. Des arguments sont nécessaires pour clarifier qui est ma page.
ruby:prototypes/index.html.erb
<%= link_to current_user.name + "M.", user_path(current_user) %>
Cliquer sur le nom d'utilisateur connecté vous amènera à Ma page de cet utilisateur.
Current_user
qui peut être utilisé en utilisant la Gemme de devise.
ruby:prototypes/_prototype.html.erb
<%= link_to "by " + prototype.user.name, user_path(prototype.user.id) %>
Obtenez l'ID de l'utilisateur associé au prototype.
ruby:prototypes/show.html.erb
<%= link_to "by " + @prototype.user.name, user_path(@prototype.user.id) %>
Le code de la pièce où le nom est affiché et qui l'a publié.
Dans l'action show, @ prototype = Prototype.find (params [: id])
et un enregistrement sont sélectionnés, ainsi l'identifiant de l'utilisateur associé au prototype peut être obtenu.
ruby:prototypes/show.html.erb
<%= link_to comment.user.name, user_path(comment.user.id) %>
Le code où le commentaire est affiché. Dans chaque déclaration|Pour les paramètres de bloc (variables)comment
|Entre et obtient l'ID de l'utilisateur associé au commentaire.