Quand je suis allé dans une certaine école de programmation et que j'ai créé une application frima en équipe, j'ai implémenté une structure multicouche de catégories, donc je vais la présenter! !!
Ensuite, je voudrais le présenter.
Tout d'abord, je souhaite associer des produits et des catégories, je vais donc créer des modèles pour "catégorie" et "article".
$ rails g model category
$ rails g model item
Présentez l'ancêtre à Gemfile.
gem 'ancestry'
Exécutez la commande suivante dans le terminal
$ bundle install
$ rails g migration add_ancestry_to_category ancestry:string:index
$ rails db:migrate
En utilisant l'ancêtre, la relation plusieurs-à-plusieurs devient une relation un-à-plusieurs et la conception de la base de données devient simple.
Décrivez has_ancestory dans category.rb
category.rb
class Category < ApplicationRecord
has_many :items
has_ancestry
end
item.rb
class Item < ApplicationRecord
belongs_to :category
end
Nous allons introduire les enregistrements de catégorie dans seeds.rb.
seeds.rb
lady = Category.create(name: "Femmes")
lady_1 = lady.children.create(name: "hauts")
lady_1.children.create([{name: "T-shirt/Couper et coudre(Manches courtes/Sans manches)"},{name: "T-shirt/Couper et coudre(Sept minutes/Manche longue)"},{name: "chemise/chemisier(Manches courtes/Sans manches)"},{name: "chemise/chemisier(Sept minutes/Manche longue)"},{name: "ポロchemise"},{name: "camisole"},{name: "Débardeur"},{name: "Dos nu"},{name: "tricoter/chandail"},{name: "Tunique"},{name: "cardigan/Boléro"},{name: "ensemble"},{name: "Meilleur/Gillet"},{name: "Parker"},{name: "entraîneur/transpiration"},{name: "Top nu/Dessus de tube"},{name: "Jersey"},{name: "Autre"}])
Si vous incluez l'ascendance, vous pouvez la traiter comme un élément enfant de la variable immédiatement précédente en écrivant .children.
La catégorie parente, Mesdames, sera enregistrée avec la description suivante.
seeds.rb
lady = Category.create(name: "Femmes")
Ensuite, la catégorie enfant Tops est enregistrée avec la description suivante.
seeds.rb
lady_1 = lady.children.create(name: "hauts")
Ensuite, le groupe de catégories de petits-enfants est enregistré avec la description suivante.
seeds.rb
lady_1.children.create([{name: "T-shirt/Couper et coudre(Manches courtes/Sans manches)"},{name: "T-shirt/Couper et coudre(Sept minutes/Manche longue)"},{name: "chemise/chemisier(Manches courtes/Sans manches)"},{name: "chemise/chemisier(Sept minutes/Manche longue)"},{name: "ポロchemise"},{name: "camisole"},{name: "Débardeur"},{name: "Dos nu"},{name: "tricoter/chandail"},{name: "Tunique"},{name: "cardigan/Boléro"},{name: "ensemble"},{name: "Meilleur/Gillet"},{name: "Parker"},{name: "entraîneur/transpiration"},{name: "Top nu/Dessus de tube"},{name: "Jersey"},{name: "Autre"}])
Après avoir décrit l'enregistrement dans seeds.rb, exécutez la commande suivante dans le terminal pour le refléter dans la base de données.
$ rails db:seed
Il est enregistré dans DB comme ceci.
Merci d'avoir regardé jusqu'au bout! !!
J'espère que vous avez trouvé cet article utile: prier_tone2:
Recommended Posts