【发布时间】:2016-08-21 01:01:13
【问题描述】:
我目前有一个使用wicked_pdf 和carrierwave 功能的rails 应用程序(4.2.1)。用户当前单击将家庭评估视图呈现为 PDF 的按钮,然后用户将 PDF 下载到他们的计算机并导航到评估表单,然后他们在其中提交 PDF 并成功上传到 AWS。
这一切都很好,但是我想做的是“简化”这个过程。当用户单击按钮时,将创建 PDF 并将其传递给carrierwave,以便使用carrierwave/fog 上传到AWS。我现在有一个视图,其中包含指向调用 FamilyAssesment.upload_assessment 方法的控制器的链接。
我一直在尝试不同的方法,但似乎无法确切了解我需要做什么才能使其正常工作。
按钮显示
<%= 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
【问题讨论】:
标签: ruby-on-rails amazon-web-services carrierwave fog wicked-pdf