Я пытаюсь прочитать некоторые текстовые файлы для разных грузовиков, хранящих данные о широте и долготе, но не имея проблем с поиском файлов на ПК с Windows, где они сохранены. Я пробовал несколько переменных gps_file (см. Ниже), но каждый раз в процессе производства я получаю не могу найти ошибку файла (Errno :: ENOENT (Нет такого файла или каталога - C: \ Rtmx \ Reports \ 2014 \ January \ 08 \ 53 .текст)). Когда я «копирую файл как путь», я получаю эту строку - «C: \ Rtmx \ Reports \ 2014 \ January \ 08 # {truck_number} .txt», которая, похоже, совпадает с моими журналами heroku, но все еще бросает ошибку. Когда я пытаюсь использовать свой Mac в dev через другую файловую структуру, он отлично работает. Я застрял в этой проблеме часами. Любое руководство будет высоко оценено. Благодаря!Поиск нужного файла Windows
При открытии файла в Chrome, я получаю следующий путь для одного из грузовиков: файла: /// C: /Rtmx/Reports/2014/January/08/75.txt
def update_locations
require 'csv'
@locations = Location.where(id: [3,4])
@locations.each do |location|
gps_file = "C:\\Rtmx\\Reports\\#{DateTime.now.strftime('%Y').to_s}\\#{DateTime.now.strftime('%B').to_s}\\#{DateTime.now.strftime('%d').to_s}\\#{location.locationable.name.to_s}.txt"
data = File.read(gps_file).gsub(",","")
csv = CSV.parse(data, :headers => true)
@location_log = Array.new
csv.each do |row|
row = row
@location_log << row
end
@latest_location_data = @location_log.last
csv_array = "#{@latest_location_data},String".parse_csv
array = csv_array.first.split("\t")
raw_latitude = array[11].split(' ')
latitude = raw_latitude[0].gsub("N","").to_f + raw_latitude[1].to_f/60 + raw_latitude[2].to_f/3600
raw_longitude = array.last.split(' ')
longitude = (raw_longitude[0].gsub("W","").to_f + raw_longitude[1].to_f/60 + raw_longitude[2].to_f/3600)*-1
location.update(latitude: latitude, longitude: longitude)
end
redirect_to locations_url
end