[RUBY] [Rails] Spécifiez le format avec link_to

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.

Qu'est-ce que le format en premier lieu?

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

Comment écrire un lien

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)

Traitement dans le contrôleur

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

De côté

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é 23d955ea526f9852065207a191d12617.png

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

[Rails] Spécifiez le format avec link_to
Préparer l'environnement de format pour "Rails" (VScode)
[Rails 6] Erreur d'exécution avec $ rails s
Manipuler le dispositif avec des rails
[Rails] Test avec RSpec
Automatisez le format avec maven-formatter
[Rails] Développement avec MySQL
Formater JSON avec org.json
Prend en charge la multilinguisme avec Rails!
Création d'un plan de site au format RSS / Atom avec Ruby on Rails
[Rails] Polymorphique express avec graphql-ruby
[Rails] Télécharger des vidéos avec Rails (ActiveStorage)
[Vue Rails] "Hello Vue!" Affiché avec Vue + Rails
Japaneseize en utilisant i18n avec Rails
Formater Ruby avec VS Code
Préparation au développement avec Rails
Exécuter des rails à chaque fois dans le docker
Comment spécifier la base de données lors de la création d'une application avec des rails
[Docker] Construction de l'environnement Rails 5.2 avec docker
Utilisez plusieurs bases de données avec Rails 6.0
Passer des paramètres à Rails link_to
[Docker] À utiliser à tout moment avec Docker + Rails
[Rails] Je souhaite ajouter des données aux paramètres lors de la transition avec link_to
Créer un portfolio avec rails + postgres sql
[Rails] Transmission push avec LINE Bot
[Rails] Rendre la pagination compatible avec Ajax
Créer une fonction de pagination avec Rails Kaminari
[Grover] Générer un PDF avec des rails [version 2020]
Suivre les erreurs de l'application Rails avec Sentry
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Connectez-vous au serveur Rails avec iPhone
Créer ma page avec Rails
Présentation de React to Rails avec react-rails
[Rails] Entrée de données initiale avec seed_fu!
Recherche intemporelle avec Rails + JavaScript (jQuery)
[rails] Faisons un test unitaire avec Rspec!