У меня есть функция, которая загружает CSV-файл, вызывая атрибуты с FTP-сервера, я использовал сопоставление полей, чтобы соответствующим образом сопоставлять атрибуты.Ошибка: сопоставление полей для CSV в ruby
Как, возможно, может решить эту ошибку
def download_csv(page_id = fetch_grid_ids.first, mapping: mapping, csv_options: csv_options)
results = fetch_grid(page_id)
records = results['response']['data']
output = []
record_count = records.size
if mapping
headers = mapping.values
download_headers = mapping.keys
elsif @config[:output_file_headers]
headers = @config[:output_file_headers]
download_headers = headers
else
headers = data.first.keys
headers.shift
download_headers = headers
end
download_headers = download_headers.map(&:to_s)
output << CSV.generate_line(headers, csv_options)
records.each_with_index do |r, i|
row = []
download_headers.each do |h|
row << r[h] rescue nil
end
logger.info "PriceFx::Client.download: #{i + 1}/#{record_count} :: #{row.size}"
output << CSV.generate_line(row, csv_options)
end
filename = "#{Rails.configuration.tmp_dir}/#{@config[:output_file]}_#{page_id}.csv"
File.open(filename, 'wb') {|f| f.puts output }
return filename
end
следующее это ошибка, я получаю
client.rb:224: syntax error, unexpected tLABEL
... fetch_grid_ids.first, mapping: mapping, csv_options: csv_op...
... ^
client.rb:452: syntax error, unexpected keyword_end, expecting $end
любые подсказки, как я могу решить эту