2010-04-23 9 views
7

He creado una versión en PDF de nuestra aplicación de rieles utilizando el plugin de Prawn, la página en cuestión es parte del modelo de Kase - el enlace al kase es/kases/1 y el enlace a la versión en pdf es /kases/1.pdf.Los rieles enlazan a la versión en PDF de show.html.erb

¿Cómo puedo agregar un enlace dentro del archivo show.html.erb al archivo PDF, de modo que, independientemente de la página que se esté viendo, ¿se actualiza la URL a la id del caso correcto?

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

Gracias,

Danny

Respuesta

27

Para cualquiera que esté interesado ...

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

¿El trabajo adecuadamente. También funciona incluso si está utilizando Wicked PDF joya, ya que maneja formato PDF solicita

0

se crea un controlador es statement.This proceso muy simple para mostrar la página de programa en formato pdf usando joya gambas

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