[RUBY] Comment supprimer des éléments enfants associés à un élément parent en même temps

En ce qui concerne la fonction de suppression du modèle de révision dans Rails, elle fonctionnait à l'origine sans problème, mais une erreur s'est produite après la mise en œuvre du modèle de commentaire. Je vais le partager car la cause a été clarifiée.

Environnement de développement

Ruby 2.6.5 Rails 6.0.3.3

Détails de la mise en œuvre lorsqu'un problème survient

Le routage est imbriqué avec reveiw comme parent et comment comme enfant.

config/routes.rb


resources :reviews do
    resources :comments, only: [:create, :destroy] 
end

Il a été mis en œuvre afin que l'examen soit supprimé. Avant la mise en œuvre du commentaire, il pouvait être supprimé tel quel.

views/reviews/show.html.erb


<%= link_to review_path(id: @review.id), method: :delete do %>
    <div>Supprimer l'avis</div>
    <div>Vous pouvez supprimer l'avis ici.</div>
<% end %>

Lieu de modification

Puisque nous avons implémenté le commentaire en tant qu'élément enfant de la révision, nous devons l'implémenter afin que le commentaire soit supprimé en même temps que la révision. Par conséquent, modifiez models / review.rb comme suit.

models/review.rb


has_many :comments

↓↓↓

models/review.rb


has_many :comments, dependent: :destroy

L'implémentation de la fonction de suppression est terminée ici.

référence

https://qiita.com/Tsh-43879562/items/fbc968453a7063776637

Recommended Posts

Comment supprimer des éléments enfants associés à un élément parent en même temps
Comment supprimer le tweet associé à l'utilisateur lorsque vous le supprimez en même temps
Dessinez un graphique à barres et un graphique linéaire en même temps avec MPAndroidChart
Comment supprimer des éléments d'adaptateur personnalisés à l'aide d'un modèle personnalisé
[Docker] Supprimer uniquement le volume associé à un conteneur spécifique
Comment ajouter les mêmes index dans un tableau imbriqué
Comment utiliser MinIO avec la même fonction que S3 Utiliser docker-compose
Comment appeler plusieurs noms à la fois dans la même catégorie
Comment interagir avec un serveur qui ne plante pas l'application
Comment vérifier avant d'envoyer un message au serveur avec Spring Integration
Comment comparer uniquement le temps avec Rails (de quelle heure à quelle heure, quelque chose comme)
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
Comment mettre en œuvre la fonction d'authentification du courrier au moment de l'inscription de l'utilisateur
[Java] Comment régler la date sur 00:00:00
Comment supprimer des données avec une clé externe
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Comment stocker simultanément des données dans un modèle associé à une forme imbriquée (Rails 6.0.0)
[Ruby] Définissez la hiérarchie en même temps que l'initialisation de Hash avec la méthode tap
Comment supprimer un contrôleur, etc. à l'aide d'une commande
Définir l'heure de LocalDateTime à une heure spécifique
Comment effacer la base de données lors de la recréation de l'application
(Java) Comment implémenter equals () pour une classe avec des éléments de valeur ajoutés par héritage
Comment enregistrer des fichiers avec l'extension spécifiée sous le répertoire spécifié en Java dans la liste
[Docker] Comment voir le contenu des volumes. Démarrez un conteneur avec les privilèges root.
Mémo à faire pour le moment lors de la construction de la série CentOS 6 avec VirtualBox
Comment changer l'action avec plusieurs boutons d'envoi
Comment supprimer / mettre à jour le champ de liste de OneToMany
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Comment exécuter l'application SpringBoot en tant que service
Organisé comment interagir avec le JDK par étapes
[Comment insérer une vidéo dans un hameau avec Rails]
Comment supprimer des images non balisées en masse avec Docker
Comment faire un MOD pour Slay the Spire
Comment activer le bouton d'envoi à chaque fois avec jquery
[Java] Comment rompre une ligne avec StringBuilder
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Comment étudier le kotlin pour la première fois ~ Partie 2 ~
Comment étudier le kotlin pour la première fois ~ Partie 1 ~
Comment utiliser la même classe Mapper dans plusieurs sources de données avec Spring Boot + MyBatis
Méthode de mise en œuvre consistant à lier plusieurs images à un article et à publier en même temps
Comment réduire même un peu la charge du programme lors de la combinaison de caractères avec JAVA
Que ce soit pour faire du côté serveur au moment de la reconstruction du système avec Kotlin ou Java
En attente de connexion JMX à 18080 Connectez-vous à plusieurs serveurs d'applications Java sur la plate-forme en même temps à partir d'une machine locale