Comme le titre l'indique, il s'agit de spécifier le format avec la méthode link_to
.
C'est assez facile, mais je vais le laisser comme un rappel car l'article n'a pas frappé de manière inattendue.
Le format de sortie Habituellement au format html, le fichier html est rendu, non? Il existe d'autres formats json, pdf, csv, etc.
Cette fois, je vais essayer de supposer la sortie PDF
Spécifiez simplement le format dans l'argument chemin!
fichier mince
= link_to 'Afficher un nom', xxx_path(format: :pdf)
Si vous souhaitez spécifier un autre identifiant ou définir un paramètre, vous pouvez simplement entrer dans l'argument de la même manière.
fichier mince
= link_to 'Afficher un nom', xxx_path(format: :pdf, id: @post, parameter_name: parameter_content)
Dans le contrôleur, c'est OK si vous spécifiez le format et décrivez le processus Dans le cas du pdf, je pense que send_file est souvent utilisé pour afficher ou télécharger le fichier. Si vous écrivez comme suit, il ouvrira le fichier PDF sur le navigateur en spécifiant le nom du fichier.
manette
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
#Spécifiez l'emplacement d'enregistrement du pdf
@post.pdf.path #← Si vous utilisez carrierwave, cela ressemble à ceci
end
def filename
#Spécifiez le nom de fichier du pdf
"#{@post.id}.pdf"
end
end
Lorsque vous effectuez des itinéraires de rails, vous pouvez voir (.: Format) dans le modèle d'URI. Ce sera l'URI lorsque le format est spécifié
Par exemple, si le format est pdf comme cette fois, l'URL sera quelque chose comme https: // xxxxxx / xxx.pdf
.
Cela signifie qu'il sera ajouté sous la forme de .format format
à la fin en fonction du format ~
Recommended Posts