0

私は測量士の宝石について読み、ウェブページ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')

わかりません 助けてください。

4

1 に答える 1

0

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>

これにより、作業するためのいくつかのコアな根拠が得られるはずです

于 2013-04-12T02:56:24.643 に答える