Ich verwende derzeit die cities gem, um eine Liste der Städte in der Datenbank für die Erstellung von Adressen zu füllen. Ich wurde gebeten, dieses Juwel zu entfernen und alle JSON-Dateien aus dem Ordner "Städte" einzulesen, der mit dem Edelstein der Stadt geliefert wird.Iterieren durch alle Dateien in einem bestimmten Verzeichnis
Ich habe an mehreren SO Beiträge sah darüber, wie diese Umsetzung zu tun, einschließlich: Iterate through every file in one directory
Nach wit Umsetzung der Dir.glob
, meine app stürzt nur voll und ganz auf die jeweilige Seite und verlässt/verlassen Sie den Server.
Andernfalls mit Dir.foreach
, ich
Errno::ENOENT in StuffsController
No such file or directory @ dir_initialize
Für diesen Fehler habe ich versucht, this SO post aber klar, dass ich kann wirklich nicht meine Gemfile updaten, da es mehr Probleme für mich verursacht.
Hier ist mein Code, die Errno::ENOENT
produziert:
@okay = Array.new
Dir.foreach("#{Rails.root}/cities/*.json") do |json_file|
@okay << JSON.parse(File.read(json_file))
end
Ich habe auch den Code unten aus this SO post versucht, aber erhielt ein
NameError in StuffsController
undefined local variable or method `id' for # <StuffsController>
@okay = Array.new
Dir.foreach("#{Rails.root}/cities/#{id}.json") do |json_file|
@okay << JSON.parse(File.read(json_file))
end
ich es aus einer einzigen Datei zum Lesen arbeiten kann Dieser Ordner ist in Ordnung, 100% keine Probleme:
@cities = Array.new
@json = JSON.parse(File.read('cities/AD.json'))
@json.each do |j|
if j.second.has_key?("accentcity")
@cities << j.second.select {|k,v| k == "accentcity"}
name = j.second.select {|k,v| k == "accentcity"}
City.first_or_create(name: name)
end
end
(Bitte beachten Sie, dass das Array @cities
hauptsächlich zum Testen verwendet wurde, ob meine Methode produzierte, was ich wollte)
Ich verwende Ruby on Rails Version 4.2.6.
Was bedeutet die Protokolldatei nach dem App stürzt mit glob enthält? –