suryveyor gem如何以pdf格式输出调查?

sunde 发布于 2019-03-09 rubygems 最后更新 2019-03-09 14:37 0 浏览

我阅读了关于测量员gem和http://nubic.github.io/surveyor/的网页 我在哪里可以将这一行导出调查报告为pdf? %li= link_to "PDF", view_my_survey_path(:survey_code => response_set.survey.access_code, :response_set_code => response_set.access_code, :format => 'pdf') 我不理解,请帮忙。

已邀请:

walias

赞同来自:

从您提供的网站的外观,您应该生成surveyor:custom控制器。然后它会告诉你安装以下两个宝石

  gem 'pdfkit'
  gem 'wkhtmltopdf'
但我个人更喜欢在我看来使用wicked_pdf。稍微改变一下教程,我会做以下事情:
rails generate surveyor:custom
这将生成控制器。那么我们以后可以使用wicked_pdf将为我们提供的选项来配置它。 将以下行添加到您的Gemfile:
    gem 'wicked_pdf'  #https://github.com/mileszs/wicked_pdf
    gem 'wkhtmltopdf' #https://code.google.com/p/wkhtmltopdf/
为了正确导出wicked_pdf,您需要在surveyor controller中为您生成的操作中包含类似内容。因此,您在surveyor_controller.rb的index操作中可能会出现类似的情况。
respond_to do |format|
      format.html
      format.pdf do
        render :pdf => "Survey Report",
               :header => {:html => {:template => 'layouts/pdf.html.erb'}}
end
    end
从这个响应块中你可以/我应该认为在views中有以下目录 - app/views/survey/index.html.erbindex.html.erb内你将拥有上面的链接。
<%= link_to "PDF", view_my_survey_path(:survey_code => 
response_set.survey.access_code, :response_set_code => 
                     response_set.access_code, :format => 'pdf') %>
我之前从未使用过测量师宝石。但根据你提供的东西,以及你想要的东西,我试图给出尽可能多的详细解释。希望这可能对您或其他任何人有所帮助 Wicked_PDF用法示例
 def index 
    @bookings= Booking.scoped
    booking = @bookings
    @user = current_user
if params[:format] == 'pdf'
      @bookings= @bookings.where(:day => Date.today.beginning_of_month..Date.today.end_of_month)
    end
respond_to do |format|
      format.html
      format.pdf do
        render :pdf => "#{Date.today.strftime('%B')} Overtime Report",
               :header => {:html => {:template => 'layouts/pdf.html.erb'}}
        OvertimeMailer.overtime_pdf(@user, booking).deliver
      end
    end
  end
View.html.erb
<%= Link_to "Overtime", "booking.png",  bookings(:format => "pdf") %>
为了生成PDF,您需要创建一个具有以下扩展名.pdf.erb的文件,这意味着当处理链接时,它首先处理嵌入的ruby代码,然后输出PDF。所以在这种情况下我想做预订。所以我在我的views/bookings/index.pdf.erb中创建了这个,我有以下内容: 视图/预订/ index.pdf.erb
<br />
<% @bookings.each do |booking| %>
<p>
  <b>Employee</b>
  <%= booking.user.try (:full_name)%>
</p>
<p>
  <b>Hospital</b>
  <%= booking.hospital.try(:name)%>
</p>
<p>
  <b>Day</b>
  <%= booking.day.to_s(:long_ordinal) %>
</p>
<p>
  <b>Overtime</b>
  <%= booking.overtime %>
</p>
    <br />
 <% end %>
<h2>Total Overtime is <b><%=@bookings.to_a.sum(&:overtime)%></b></h2>
这应该给你一些核心理由来解决