(Ruby on Rails6) "Effacer" le contenu publié

Préface

Ici, RubyonRails6 est utilisé pour enregistrer un enregistrement d'oubli qui modifie (efface) </ strong> le contenu publié. Dans le post précédent, a implémenté une fonction d'édition . L'implémentation de la fonction d'édition y est enregistrée, donc si vous souhaitez la vérifier, veuillez vérifier ici.

"Effacer" le contenu publié

Pour mettre en œuvre ce post, action </ strong> doit être effacer (cliquer) les données / transférer vers la liste des posts </ strong>.

paramètres des itinéraires

Créez une action de suppression </ strong> dans les itinéraires. Avec form /: id / delete </ strong>, l'URL de l'ID que vous souhaitez supprimer est spécifiée. De plus, si vous souhaitez modifier </ strong> la base de données, définissez-la avec "post" </ strong> au lieu de "get" sur les routes.

config/routes


・
・
・
post "form/:id/delete" => "form#delete"

Lier le paramètre à la vue

erb:app/views/Tout.html.erb


・
・
・
<%= link_to("Effacer", "/form/#{@post.id}/delete", {method: "post"}) %>

J'utilise link_to </ strong> pour créer un lien vers l'action de suppression que je viens de créer.

Remarque: différence entre obtenir et publier

En ajoutant {method: "post"}) </ strong>, vous pouvez l'associer à la publication des routes. C'est compliqué !!

erb:app/views/Tout.html.erb


↓ erreur dans le message
<%= link_to("Effacer", "/form/#{@forms.id}/delete") %>

↓ est correct
<%= link_to("Effacer", "/form/#{@forms.id}/delete", {method: "post"}) %>

Extraire et supprimer des données

app/controllers/Tout.rb


  def delete
    @forms = Form.find_by(id: params[:id])
    @forms.destroy
    
    redirect_to("/")
  end

↑ Détails

app/controllers/Tout.rb


  def delete
    # find_Obtenez des données avec la méthode by
    @forms = Form.find_by(id: params[:id])
  end

app/controllers/Tout.rb


  def delete
    # @nom de la table.Supprimer avec détruire
    @forms.destroy
  end

app/controllers/Tout.rb


  def delete
    # redirect_Définir la redirection avec la méthode to
    redirect_to("/")
  end

Si ce qui précède est terminé et que l'erreur ne se fâche pas, la fonction de suppression doit être terminée. Comment était-ce?

Épilogue

Merci d'avoir lu jusqu'ici. Cela ressemble à un site à part entière si vous implémentez une fonction d'affichage / modification à partir des paramètres de la base de données et ajoutez une fonction de suppression à l'article. Cependant, lorsque la fonction de publication est supprimée avec succès, je me sens heureux mais triste (Pourquoi?)

La création / édition / suppression de bases de données et les fonctions de base ont été implémentées jusqu'à présent. J'aimerais en savoir plus sur la sécurité et les fonctions détaillées à l'avenir.

Lien de référence

<a href = "https://www.amazon.co.jp/Ruby-Rails-%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83% 89-impress-gear / dp / 4295008052 "target =" blank "> Ruby on Rails6 Guide pratique

Mon lien

De plus, il y a un lien sur Twitter / Portfolio, donc si vous êtes intéressé, Connectez-vous s'il vous plaît. Je serais très heureux d'avoir des amis avec qui je peux partager mon apprentissage de la programmation.

Twitter Portfolio Github

Recommended Posts