Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails link to PDF version of show.html.erb

I have created a pdf version of our rails application using the Prawn plugin, the page in question is part of the Kase model - the link to the kase is /kases/1 and the link to the pdf version is /kases/1.pdf.

How can I add a link within the show.html.erb to the PDF file so whichever page is being viewed it updates the URL to the correct case id?

<% content_for :header do -%>
    <%=h @kase.jobno %> | <%=h @kase.casesubject %>
<% end -%>

<!-- #START SIDEBAR -->
<% content_for :sidebar do -%>
<% if @kase.avatar.exists? then %>
<%= image_tag @kase.avatar.url %>
<% else %>
<p style="font-size:smaller"> You can upload an icon for this case that will display here. Usually this would be for the year number icon for easy recognition.</p>
<% end %>
<% end %>
<!-- #END SIDEBAR -->

<ul id="kases_showlist">

<li>Date Instructed: <span><%=h @kase.dateinstructed %></span></li> 
<li>Client Company: <span><%=h @kase.clientcompanyname %></span></li>
<li>Client Reference: <span><%=h @kase.clientref %></span></li>
<li>Case Subject: <span><%=h @kase.casesubject %></span></li>
<li>Transport<span><%=h @kase.transport %></span></li>
<li>Goods<span><%=h @kase.goods %></span></li>
<li>Case Status: <span><%=h @kase.kase_status %></span></li>
<li>Client Company Address: <span class="address"><%=h @kase.clientcompanyaddress %></span></li>
<li>Client Company Fax: <span><%=h @kase.clientcompanyfax %></span></li>
<li>Case Handler: <span><%=h @kase.casehandlername %></span></li>
<li>Case Handler Tel: <span><%=h @kase.casehandlertel %></span></li>
<li>Case Handler Email: <span><%=h @kase.casehandleremail %></span></li>
<li>Claimant Name: <span><%=h @kase.claimantname %></span></li>
<li>Claimant Address: <span class="address"><%=h @kase.claimantaddress %></span></li>
<li>Claimant Contact: <span><%=h @kase.claimantcontact %></span></li>
<li>Claimant Tel: <span><%=h @kase.claimanttel %></span></li>
<li>Claiment Mob: <span><%=h @kase.claimantmob %></span></li>
<li>Claiment Email: <span><%=h @kase.claimantemail %></span></li>
<li>Claimant URL: <span><%=h @kase.claimanturl %></span></li>
<li>Comments: <span><%=h @kase.comments %></span></li>

</ul>

<!--- START FINANCE INFORMATION -->
<div id="kase_finances">
    <div class="js_option">
    <h2>Financial Options</h2><p class="finance_showhide"><%= link_to_function "Show","Element.show('finance_showhide');" %> / <%= link_to_function "Hide","Element.hide('finance_showhide');" %></p>
    </div>

<div id="finance_showhide" style="display:none">

<ul id="kases_new_finance">

  <li>Invoice Number<span><%=h @kase.invoicenumber %></span></li>
  <li>Net Amount<span><%=h @kase.netamount %></span></li>
  <li>VAT<span><%=h @kase.vat %></span></li>
  <li>Gross Amount<span><%=h @kase.grossamount %></span></li>
  <li>Date Closed<span><%=h @kase.dateclosed %></span></li>
  <li>Date Paid<span><%=h @kase.datepaid %></span></li>

</ul></div>
</div>
<!--- END FINANCE INFORMATION -->


<%= link_to 'Edit Case', edit_kase_path(@kase) %> |
<%= link_to 'Back', kases_path %> |
<a href="#">Top</a>

    <div style="width:120%; height: 50px; background-color: black; margin: 10px 0 0 -19px; padding: 0; background-color: #d4d4d4;">&nbsp;</div>

    <div class="js_option_kaseemails">
        <%= link_to_function "Show", 
        "Element.show('newinstructionemail1');"
        %> /
        <%= link_to_function "Hide", 
        "Element.hide('newinstructionemail1');"
        %>
    </div>

    <h3>New Instruction Email</h3>
    <div id="newinstructionemail1" style="display:none">
    <p class="kase_email_output">
    Hi,<br />
    <br />
    Many thanks for your instructions in the subject matter.<br />
    <br />
    We have allocated reference number <%=h @kase.jobno %> to the above claim.<br />
    <br />
    We have started our inquiries and will be in touch.<br />
    <br />
    Best Regards,<br />
    <br />
    <strong><%=h current_user.name %></strong>
    <br />
    McClelland &amp; Co<br />
    PO Box 149<br />
    Southport<br />
    PR8 4GZ<br />
    <br />
    Tel:  +(0) 1704 569871<br />
    Fax: +(0) 1704 562234<br />
    Mob: <%=h current_user.mobile %><br />
    E-mail:  <%= current_user.email %><br />
    <br />
    This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed.  If you receive this e-mail in error please notify the originator of the message.
    <br /><br />
    McClelland &amp; Co has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses but it is strongly recommended that you carry out your own virus check before opening any attachment. McClelland &amp; Co cannot accept liability for any damage sustained as a result of software virus infection.
    </p>

    <%= link_to 'Edit Case', edit_kase_path(@kase) %> |
    <%= link_to 'Back', kases_path %> |
    <a href="#">Top</a>

    </div>

        <div style="width:120%; height: 20px; background-color: black; margin: 10px 0 0 -19px; padding: 0; background-color: #d4d4d4;">&nbsp;</div>

    <div class="js_option_kaseemails">
        <%= link_to_function "Show", 
        "Element.show('newinstructionemail');"
        %> /
        <%= link_to_function "Hide", 
        "Element.hide('newinstructionemail');"
        %>
    </div>

    <h3>New Instruction Email</h3>
    <div id="newinstructionemail" style="display:none">
    <p class="kase_email_output">
    Hi,<br />
    <br />
    Many thanks for your instructions in the subject matter.<br />
    <br />
    We have allocated reference number <%=h @kase.jobno %> to the above claim.<br />
    <br />
    We have started our inquiries and will be in touch.<br />
    <br />
    Best Regards,<br />
    <br />
    <strong><%=h current_user.name %></strong>
    <br />
    McClelland &amp; Co<br />
    PO Box 149<br />
    Southport<br />
    PR8 4GZ<br />
    <br />
    Tel:  +(0) 1704 569871<br />
    Fax: +(0) 1704 562234<br />
    Mob: <%=h current_user.mobile %><br />
    E-mail:  <%= current_user.email %><br />
    <br />
    This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed.  If you receive this e-mail in error please notify the originator of the message.
    <br /><br />
    McClelland &amp; Co has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses but it is strongly recommended that you carry out your own virus check before opening any attachment. McClelland &amp; Co cannot accept liability for any damage sustained as a result of software virus infection.
    </p>

    <%= link_to 'Edit Case', edit_kase_path(@kase) %> |
    <%= link_to 'Back', kases_path %> |
    <a href="#">Top</a>

    </div>

        <div style="width:120%; height: 20px; background-color: black; margin: 10px 0 0 -19px; padding: 0; background-color: #d4d4d4;">&nbsp;</div>

    <div class="js_option_kaseemails">
    <%= link_to_function "Show", 
    "Element.show('newinstructionemail2');"
    %> /
    <%= link_to_function "Hide", 
    "Element.hide('newinstructionemail2');"
    %>
    </div>

    <h3>New Instruction Email</h3>
    <div id="newinstructionemail2" style="display:none;">
    <p class="kase_email_output">
    Hi,<br />
    <br />
    Many thanks for your instructions in the subject matter.<br />
    <br />
    We have allocated reference number <%=h @kase.jobno %> to the above claim.<br />
    <br />
    We have started our inquiries and will be in touch.<br />
    <br />
    Best Regards,<br />
    <br />
    <strong><%=h current_user.name %></strong>
    <br />
    McClelland &amp; Co<br />
    PO Box 149<br />
    Southport<br />
    PR8 4GZ<br />
    <br />
    Tel:  +(0) 1704 569871<br />
    Fax: +(0) 1704 562234<br />
    Mob: <%=h current_user.mobile %><br />
    E-mail:  <%= current_user.email %><br />
    <br />
    This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed.  If you receive this e-mail in error please notify the originator of the message.
    <br /><br />
    McClelland &amp; Co has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses but it is strongly recommended that you carry out your own virus check before opening any attachment. McClelland &amp; Co cannot accept liability for any damage sustained as a result of software virus infection.
    </p>

    <%= link_to 'Edit Case', edit_kase_path(@kase) %> |
    <%= link_to 'Back', kases_path %> |
    <a href="#">Top</a>
    </div>

Thanks,

Danny

like image 676
dannymcc Avatar asked Apr 23 '10 18:04

dannymcc


People also ask

How do I view HTML ERB?

View templates HTML tags provide static web pages only but ERB tags give us dynamic information in that HTML template. To view the template file, go to Rails application >> app >> View>> Home folder where the templates files are available.

What is HTML ERB file?

As @Chowlett mentioned before, erb stands for Embedded Ruby. When you define any file as ". html. erb" that means it's an HTML file with ruby code embedded in it and it is similar to ". rhtml" extension of rails file.


1 Answers

For anyone who is interested...

<p><%= link_to "Printable Case (PDF)", kase_path(@kase, :format => 'pdf') %></p>

Does the job nicely. It also works even if you are using Wicked PDF gem, since it handles PDF-format requests

like image 87
dannymcc Avatar answered Sep 27 '22 18:09

dannymcc