surveyor:custom
提供された Web サイトの外観から、コントローラーが生成されているはずです。これから、次の2つの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
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>
これにより、作業するためのいくつかのコアな根拠が得られるはずです