Ich habe derzeit eine Rails App (4.2.1), die die Funktionen bred_pdf und carrierwave verwendet. Der Benutzer klickt derzeit auf eine Schaltfläche, die eine Familienbewertungsansicht in PDF umwandelt. Anschließend lädt der Benutzer die PDF-Datei auf ihren Computer herunter und navigiert zu einem Bewertungsformular, wo sie die PDF-Datei einreicht und erfolgreich an AWS hochlädt.Erstelle PDF mit wicked_pdf und übergebe an carrierwave zum Hochladen
Das alles funktioniert gut, aber was ich tun möchte, ist diesen Prozess "zu vereinfachen". Wenn der Benutzer auf eine Schaltfläche klickt, wird die PDF-Datei erstellt und an carrierwave übergeben, um sie mithilfe von carrierwave/fog in AWS hochzuladen. Ich habe jetzt eine Ansicht mit einem Link zu einem Controller, der die FamilyAssesment.upload_assessment-Methode aufruft.
Ich habe mit verschiedenen Ansätzen experimentiert, aber ich kann nicht genau verstehen, was ich tun muss, um das zu erreichen.
Knopf auf Blick
<%= link_to "Upload", family_assessment_pdf_upload_url(id: "#{f.object.case.id}"), class: 'button radius default tiny pdf-button' %>
family_assessments_controller.rb
class FamilyAssessmentsController < ApplicationController
def family_assessment_pdf_upload
c = Case.find(params[:id])
family_assessment = c.family_assessment
assessment = c.assessments.where(title: 'Families First Assessment').first
FamilyAssessment.upload_assessment(assessment, family_assessment)
#If work is done and url saved to assessment.assessment do some redirect action here
end
end
family_assessment.rb
class FamilyAssessment < ActiveRecord::Base
def self.upload_assessment(assessment, family_assessment)
family_assessment = family_assessment
assessment = assessment
#I think this is how I would create the PDF in preparation for hand off to carrierwave
pdf = WickedPdf.new.pdf_from_string(
render_to_string(:pdf => "family_assessment",:template => 'family_assessments/family_assessment.pdf.erb', :locals => {:family_assessment => family_assessment})
)
#Pass pdf to carrierwave and save url in assessment.assessment
end
end
ich so etwas wie 'keine solche Datei oder das Verzeichnis erhalten @ rb_sysopen - /var/folders/_0/f6fqddzx6sx64kkpf0l540sr0000gn/T/{Rails.root}/tmp/ invoice_78.pdf20170502-46739-59eta1'. Würdest du wissen, wie du das lösen kannst? –
@ Code-MonKy - er hat ein paar Tippfehler. Diese Zeile sollte '" # {Rails.root}/tmp/... "' sein. Beachten Sie die fehlende '#' – toobulkeh
Ich habe den oben genannten Tippfehler behoben. – nzajt