Ich verwende die axlsx Gem, um Excel-Tabellen zu generieren. Ich versuche, die generierte Tabelle an das Modell zum Zippen zu senden. Diese Methode reißt die Excel-Datei mit einigen anderen Dateien.Schienen: Senden Sie eine Datei, die von einer Axlsx-Ansicht generiert wurde, an ein Modell
Das Verfahren in meinem Modell sieht wie folgt aus:
def zipper
tempfile = Tempfile.new
children = self.children_with_forms
Zip::OutputStream.open(tempfile) do |stream|
children.each do |child|
directory = "#{child.wide_reference[0,3]}/"
if child.model_name == "Position"
stream.put_next_entry("#{child.volume} #{child.title} TOC.xlsx")
stream.print IO.read(Rails.application.routes.url_helpers.toc_path(format: :xlsx, position_id: child.id))
end
stream.put_next_entry("#{directory}#{child.wide_reference}-#{child.short_name}-#{child.title.truncate(15, omission:'')}.docx")
stream.print IO.read(child.download_form.path)
end
end
tempfile
end
Der Teil I Probleme habe mit ist:
if child.model_name == "Position"
stream.put_next_entry("#{child.volume} #{child.title} TOC.xlsx")
stream.print IO.read(Rails.application.routes.url_helpers.toc_path(format: :xlsx, position_id: child.id))
end
Wie kann ich die erzeugte Datei in das Modell zu bekommen?
agustaf, sollten Sie Ihre endgültige Lösung hier posten und Ihre eigene Antwort als richtig markieren.. – noel