Es ist einfach, mehrere andere Textspalten einzufügen, aber es fiel mir schwer, weil alle Bildspalten gleich Null wurden. Hier sind zwei Methoden, um mehrere Bildspalten gleichzeitig einzugeben. Ich werde.
In db / migrate / seed.rb
,
seed.rb
Post.create!(image: /public/uploads/post/image/1/yatoguti.jpg,
park:Tanitoguchi Park,
outline:Jeder, der Kubo kennt, weiß es,
location:1-20-14 Kubo, Hino-shi, Tokio,
access:5 Minuten zu Fuß von der Kubo Station mit der Monorail)
Und dann Rails db: reset
und dann Rails db: seed
,
=> [#<Post:0x00007fa6c66bc8e8
id: 27,
image: nil,
park: "Tanitoguchi Park",
outline:
"Jeder, der Kubo kennt, weiß es.",
location: "10 Minuten zu Fuß von der Takahata Fudo Station auf der Keio Line in Richtung Hyakusoen Station",
access: "1024 Takahata, Hino City",
created_at: Sun, 02 Aug 2020 14:38:30 JST +09:00,
updated_at: Sun, 02 Aug 2020 14:38:30 JST +09:00,
likes_count: nil,
tag_list: ["#Im Wasser spielen", "#Sportlich"]>,
#<Post:0x00007fa6c7b48f28
id: 28,
image: nil,
park: "Niederschlagspark",
outline: "Es ist ein Park, der sowohl Helligkeit als auch eine ruhige Atmosphäre hat.",
location: "8 von 881 Hyakuso, Hino City",
access: "3 Minuten zu Fuß östlich von der Bushaltestelle der Misawadai Grundschule",
created_at: Sun, 02 Aug 2020 14:38:30 JST +09:00,
updated_at: Sun, 02 Aug 2020 14:38:30 JST +09:00,
likes_count: nil,
:...skipping...
Auf diese Weise wird die ** Bildspalte zu Null **, wenn nur die URL direkt beschrieben wird.
Schreiben Sie die Beschreibung der Bild-URL in der Bildspalte wie folgt um.
seed.rb
Post.create!(image: File.open("#{Rails.root}/public/uploads/post/image/1/yatoguti.jpg "),
park:Tanitoguchi Park,
outline:Jeder, der Kubo kennt, weiß es,
location:1-20-14 Kubo, Hino-shi, Tokio,
access:5 Minuten zu Fuß von der Kubo Station mit der Monorail)
Die Beschreibung der Bildspalte,
Post.create!(image: /public/uploads/post/image/1/yatoguti.jpg,
nicht,
Post.create!(image: File.open("#{Rails.root}/public/uploads/post/image/1/yatoguti.jpg "),
Ändern. Dann Schienen db: reset
und dann Schienen db: seed
.
Damit können die Startdaten auf einmal eingegeben werden!
Da die anfängliche Dateneingabe mit seed.rb erfolgreich war, schreiben Sie sie diesmal auf die gleiche Weise mit db / csv_dara / csv_data.csv
und lib / task / import_csv.rake
und versuchen Sie es mit CSV-Import.
csv_data.csv
image,park,outline,location,access,tag_list
File.open("#{Rails.root}/public/uploads/post/image/6/ajisai.jpg "),Fuyo Park,Es ist ein kleiner Park direkt neben "Takahata Fudo" in Hino City. Das Hotel liegt auf einem Hügel in der Wohnanlage und ist ein Ort der Entspannung für einheimische Kinder. Es gibt Schaukeln, Rutschen, Eisenstangen, Sandfelder und es gibt auch einen Raum, in dem Sie frei spielen können.,714 Takahata, Hino City, Tokio-21,5 Minuten zu Fuß vom Bahnhof Takahata Fudo entfernt,#rutschen#Eisenstange#Schwingen#Sandiger Ort
File.open("#{Rails.root}/public/uploads/post/image/8/hohoemi.jpg "),Smile Park,Die Betonhügel sind ein beliebter Park. Ein Tunnel, der vertikal und horizontal innerhalb des Hügels verläuft, eine Bergsteigerroute mit einem Verschluss außen sowie eine breite Rutsche und ein Sandbereich sind integriert, sodass Sie ein kleines Abenteuer genießen können.,2-31-6, Nanpei, Hino-shi,5 Minuten östlich von der Bushaltestelle Kitano Kaidoguchi,#rutschen#Eisenstange#Schwingen
File.open("#{Rails.root}/public/uploads/post/image/7/hodokubo.jpg "),Unkubo Bezirk Freifläche,Leicht abfallende Wiesen und Wälder. Es gibt keine Spielgeräte, aber Sie können Bäume klettern, Gras rutschen und Eicheln sammeln. Es ist ein Feld, also ist es in Ordnung, mit bloßen Händen herumzugehen.,3-22-2 Kubo, Hino City,5 Minuten zu Fuß östlich von der Tama Animal Park Station auf der Keio Line,#Gras
lib/tasks/import_csv.rake
require 'csv'
namespace :import_csv do
desc "Aufgabe zum Importieren von CSV-Daten der Post-Tabelle"
task posts: :environment do
path = File.join Rails.root, "db/csv_data/csv_data.csv"
list = []
CSV.foreach(path, headers: true) do |row|
list << {
image: row ["image"],
park: row["park"],
outline: row["outline"],
location: row["location"],
access: row["access"],
tag_list: row["tag_list"]
}
end
puts "Importvorgang starten"
Post.create!(list)
puts "Import abgeschlossen!!"
end
end
Ich dachte, dass ein CSV-Import möglich sein würde, da beschrieben wurde, dass der Startwert ursprünglich eingegeben wurde. Dann ...
rake aborted!
CSV::MalformedCSVError: Illegal quoting in line 2.
/Users/sekishinya/Desktop/park_app/lib/tasks/import_csv.rake:11:in `block (2 levels) in <main>'
Tasks: TOP => import_csv:posts
(See full trace by running task with --trace)
Kann aufgrund eines Fehlers nicht importiert werden. Ursprünglich habe ich ohne die Bildspalte importiert, daher besteht kein Zweifel daran, dass die Bildspalte das Problem ist.
Im Gegensatz zu Seed wird CSV als ** alle Zeichenfolgen ** behandelt, daher ist die Beschreibung unterschiedlich.
Schreiben Sie daher "lib / task / import_csv.rake" und "db / csv_dara / csv_data.csv" wie folgt um.
import_csv.rake
require 'csv'
namespace :import_csv do
desc "Aufgabe zum Importieren von CSV-Daten der Post-Tabelle"
task posts: :environment do
path = File.join Rails.root, "db/csv_data/csv_data.csv"
list = []
CSV.foreach(path, headers: true) do |row|
list << {
image: File.open("#{Rails.root}/#{row["image"]}"),
park: row["park"],
outline: row["outline"],
location: row["location"],
access: row["access"],
tag_list: row["tag_list"]
}
end
puts "Importvorgang starten"
Post.create!(list)
puts "Import abgeschlossen!!"
end
end
Die Beschreibung der Bildspalte von import_csv.rake
,
image: row ["image"],
nicht,
image: File.open("#{Rails.root}/#{row["image"]}"),
Ändern.
Ändern Sie dann die Bildspalte von "csv_data.csv" wie folgt.
csv_data.csv
image,park,outline,location,access,tag_list
"public/uploads/post/image/8/fuyou.jpg ",Fuyo Park,Es ist ein kleiner Park direkt neben "Takahata Fudo" in Hino City. Das Hotel liegt auf einem Hügel in der Wohnanlage und ist ein Ort der Entspannung für einheimische Kinder. Es gibt Schaukeln, Rutschen, Eisenstangen, Sandfelder und es gibt auch einen Raum, in dem Sie frei spielen können.,714 Takahata, Hino City, Tokio-21,5 Minuten zu Fuß vom Bahnhof Takahata Fudo entfernt,#rutschen#Eisenstange#Schwingen#Sandiger Ort
"public/uploads/post/image/8/hohoemi.jpg ",Smile Park,Die Betonhügel sind ein beliebter Park. Ein Tunnel, der vertikal und horizontal innerhalb des Hügels verläuft, eine Bergsteigerroute mit einem Verschluss außen sowie eine breite Rutsche und ein Sandbereich sind integriert, sodass Sie ein kleines Abenteuer genießen können.,2-31-6, Nanpei, Hino-shi,5 Minuten östlich von der Bushaltestelle Kitano Kaidoguchi,#rutschen#Eisenstange#Schwingen
"public/uploads/post/image/8/hodokubo.jpg ",Unkubo Bezirk Freifläche,Leicht abfallende Wiesen und Wälder. Es gibt keine Spielgeräte, aber Sie können Bäume klettern, Gras rutschen und Eicheln sammeln. Es ist ein Feld, also ist es in Ordnung, mit bloßen Händen herumzugehen.,3-22-2 Kubo, Hino City,5 Minuten zu Fuß östlich von der Tama Animal Park Station auf der Keio Line,#Gras
Zum Zeitpunkt des Starts konnte nicht nur die URL beschrieben werden, aber ** umgekehrt ist es besser, nur die URL ** für CSV-Daten zu schreiben.
Damit ist es uns gelungen, auch mit CSV mehrere Bilder gleichzeitig zu importieren!
Recommended Posts