Ruby 2.6.5 Rails 6.0.3
seed.rb
User.create!(
email: "[email protected]",
name: "user1",
passowrd: "password"
)
Créer! Action pour le modèle pour lequel vous souhaitez créer un enregistrement. Je vais donner la valeur de chaque colonne.
seed.rb
users = User.create!([
{nickname: "guest", email: "[email protected]", password: "guest1234"},
{nickname: "guest2", email: "[email protected]", password: "guest5678"},
])
Préparez un tableau. Il peut être créé en passant des données d'enregistrement sous la forme d'un hachage à chaque élément du tableau.
seed.rb
20.times do |n|
User.create!(
name: "guest#{n+1}",
email: "guest#{n+1}@guest.com",
password: "guest#{n+1}0000",
)
end
Exécutez plusieurs fois l'action create! À l'aide de la méthode times. Implémentez différentes valeurs pour chaque enregistrement en incluant n dans la valeur afin que les colonnes avec unicité ne se chevauchent pas.
seed.rb
stations = ["Tokyo",
"Yurakucho",
"Shimbashi",
"Ville de Hamamatsu",
"Tamachi",
"Porte de Takanawa",
"Shinagawa",
"Osaki" ,
"Gotanda",
"Meguro",
"Ebisu",
"Shibuya",
"Harajuku",
"Yoyogi",
"Shinjuku",
"Shin-Okubo",
"Takada Baba",
"Mejiro",
"Ikebukuro",
"Otsuka",
"Negamo",
"Komagome",
"Tabata",
"Nishi Nippori",
"Nippori",
"Uguisudani" ,
"Ueno",
"Okachimachi",
"Akihabara",
"Kanda"]
stations.length.times do |i|
Station.create!(
name: stations[i]
)
end
Après avoir préparé le tableau, répétez autant de fois qu'il y en a et donnez la valeur du tableau à la colonne. (Je pense que je devrais pouvoir aller avec chacun, mais pour une raison quelconque, cela n'a pas fonctionné et je l'ai traité avec le temps) J'ai utilisé le tableau parce que je voulais réutiliser cette valeur pour une autre colonne. (Plus précisément, lorsque j'ai créé les données de démonstration du restaurant après cela, je voulais inclure le nom de la station dans le nom du magasin, j'ai donc choisi cette méthode)
seed.rb
Item.create!(
name: "canapé",
produce: "Tout neuf",
price: 8000,
images_attributes: [{image: File.open('./app/assets/images/index_item01.png',)}]
)
Si la table Item imbrique la table Image et a une relation has_many. Étant donné que images_attributes a plusieurs données d'enregistrement, créez un tableau et indiquez les données d'enregistrement de la table Image par hachage.
seed.rb
10.times do |i|
Shop.create!(
name: "Magasin de poisson frais#{stations[i]}boutique",
address: addresses[i],
capacity: 40,
mainimage: File.open('./app/assets/images/shops/shop1_1.jpg'),
maincontent: "Nous vous attendons pour préparer les fruits de mer directement depuis la zone de production!",
likepoints: 0,
station_ids: [i+1,i+2],
introduces_attributes: [
{subcontent: "Vous pouvez profiter de votre repas dans un intérieur calme.",
number: 1,
subimage: File.open('./app/assets/images/shops/shop1_2.jpg')},
{subcontent:"Nous vous recommandons le plateau de fruits de mer!",
number: 2,
subimage: File.open('./app/assets/images/shops/shop1_3.jpg')},
{subcontent: "Un commis bavard vous attend!",
number: 3,
subimage: File.open('./app/assets/images/shops/shop1_4.jpg')}
]
)
end
Plusieurs données d'atelier sont créées à l'aide du tableau appelé stations. La table shop imbrique la table introduces, et je veux passer plusieurs enregistrements à la table introduces, donc je passe le tableau sous la forme d'un hachage. Ce n'est pas si compliqué, étonnamment. (Je ne connais pas la cause, mais cela n'a pas fonctionné au début, et quand j'ai ajusté l'indentation, quelque chose s'est passé. Qu'est-ce que c'était?)
Quand j'ai étudié comment les données étaient envoyées dans le formulaire, j'ai bien compris, donc je n'ai pas eu à trop m'inquiéter de la description dans le fichier de départ. En lisant diverses choses, j'ai eu l'impression que la phrase «le tableau est retiré comme un hachage et le hachage est retiré comme un tableau pour sauvegarder les données» qui apparaissait dans le texte officiel ou quelque chose était très facile à comprendre (rappelez-vous).
Je vais le laisser comme un rappel.
Recommended Posts