我在网页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')
我不明白请帮忙。
我在网页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')
我不明白请帮忙。
从您提供的网站的外观来看,您应该已经生成了surveyor:custom
控制器。然后它会告诉您安装以下两个 gem
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
为您生成的操作中包含类似的内容。因此index
,您的surveyor_controller.rb 操作中可能会有类似的内容
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.erb
在里面index.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
查看.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>
这应该给你一些核心的理由来解决