2010-04-23 26 views
7

Ho creato una versione pdf della nostra applicazione rails utilizzando il plugin Prawn, la pagina in questione è parte del modello Kase - il collegamento al kase è/kases/1 e il link alla versione pdf è /kases/1.pdf.Rails collegamento alla versione PDF di show.html.erb

Come è possibile aggiungere un collegamento all'interno di show.html.erb al file PDF in modo che qualsiasi pagina venga visualizzata, aggiorna l'URL all'id del caso corretto?

<% 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> 

Grazie,

Danny

risposta

27

Per chi è interessato ...

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

Fa il lavoro bene. Funziona anche anche se si utilizza Wicked PDF gioiello, dal momento che gestisce formato PDF richiede

0

si crea un controller statement.This è processo molto semplice per visualizzare spettacolo pagina su file pdf con gamberi gemma

def show 
respond_to do |format| 
format.html 
format.pdf do 
pdf = Prawn::Document.new 
pdf.text "@varinlename.filename" 
end 
Problemi correlati