I am generating PDF files and my link look like this:
<%= link_to 'Invoice', display_invoice_path(invoice.id), :format => :pdf %>
When I click on this, it takes me to /display_invoice/123456789 (it's an HTML version).
In the controller action is following:
def display_invoice
if params[:invoice_number]
@invoice = ...
respond_to do |format|
format.html
format.pdf do
#render pdf: '123', # file name
render pdf: params[:invoice_number],
layout: 'layouts/application.pdf.erb'#, # layout used
#show_as_html: params[:debug].present? # allow debuging
end
end
end
end
and in the routes:
get '/display_invoice/:invoice_number', to: 'invoices#display_invoice', :as => 'display_invoice'
After clicking the link, I'd like to have in the URL /display_invoice/INVOICE_NUMBER.pdf - currently, there's just /display_invoice/INVOICE_NUMBER.
How to open it with the ".pdf" suffix?
Thank you.
use this code instead of your code
You need to add the pdf mime type.
Add the following line to the file config/initializers/mime_types.rb:
See http://guides.rubyonrails.org/action_controller_overview.html#restful-downloads for details.
EDIT:
The format needs to be part of the path helper: