Wie der Titel schon sagt, geht es darum, wie das Format mit der Methode "link_to" angegeben wird.
Es ist ziemlich einfach, aber ich werde es als Erinnerung belassen, da der Artikel nicht unerwartet getroffen wurde.
Das Ausgabeformat Normalerweise wird die HTML-Datei im HTML-Format gerendert, oder? Es gibt andere JSON-Formate, PDF, CSV usw.
Dieses Mal werde ich versuchen, eine PDF-Ausgabe anzunehmen
Geben Sie einfach das Format im Pfadargument an!
schlanke Datei
= link_to 'Anzeigename', xxx_path(format: :pdf)
Wenn Sie eine andere ID angeben oder einen Parameter festlegen möchten, können Sie das Argument auf die gleiche Weise aufrufen.
schlanke Datei
= link_to 'Anzeigename', xxx_path(format: :pdf, id: @post, parameter_name: parameter_content)
In der Steuerung ist es in Ordnung, wenn Sie das Format angeben und den Prozess beschreiben Im Fall von PDF denke ich, dass send_file oft verwendet wird, um die Datei anzuzeigen oder herunterzuladen. Wenn Sie wie folgt schreiben, wird die PDF-Datei im Browser durch Angabe des Dateinamens geöffnet.
Regler
class HogesController < ApplicationController
def show
respond_to do |format|
format.pdf do
send_file(pdf_path, filename: filename, disposition: 'inline')
end
end
end
private
def pdf_path
#Geben Sie den Speicherort für PDF an
@post.pdf.path #← Wenn Sie Carrierwave verwenden, sieht es so aus
end
def filename
#Geben Sie den Dateinamen von pdf an
"#{@post.id}.pdf"
end
end
Wenn Sie Rails-Routen erstellen, sehen Sie (.: Format) im URI-Muster. Dies ist der URI, wenn das Format angegeben wird
Wenn das Format beispielsweise wie dieses PDF ist, lautet die URL "https: // xxxxxx / xxx.pdf". Dies bedeutet, dass es am Ende in Form des .format-Formats hinzugefügt wird, abhängig vom Format ~
Recommended Posts