Я использую ruby gem для разбора и редактирования gpx.Я хочу сохранить отредактированный результат в активном хранилище.
В геме есть этот метод для сохранения
def write(filename, update_time = true)
@time = Time.now if @time.nil? || update_time
@name ||= File.basename(filename)
doc = generate_xml_doc
File.open(filename, 'w+') { |f| f.write(doc.to_xml) }
end
, а в ActiveStorage есть пример для сохранения
@message.image.attach(io: File.open('/path/to/file'), filename: 'file.pdf')
Iможно использовать оба из них, и это должно сработать, но тогда я пишу файл дважды, а также имею дополнительный ненужный файл в файловой системе, который необходимо удалить позже.
Идеальной ситуацией будетпусть гем gpx напрямую передает данные в ActiveStorage, и пусть AS будет единственным, кто сохранит файл.
Учитывая, что write()
кажется единственным способом экспорта / сохранения данных, а generate_xml_doc
является частнымметод, есть ли способ, которым я могу достичь этого, не разветвляя драгоценный камень или обезьяна, исправляя его?