[RUBY] [Rails] Geben Sie das Format mit link_to an

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.

Was ist überhaupt Format?

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

Wie schreibe ich einen Link?

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)

Verarbeitung in der Steuerung

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

Beiseite

Wenn Sie Rails-Routen erstellen, sehen Sie (.: Format) im URI-Muster. Dies ist der URI, wenn das Format angegeben wird 23d955ea526f9852065207a191d12617.png

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

[Rails] Geben Sie das Format mit link_to an
Bereiten Sie die Formatumgebung für "Rails" (VScode) vor.
[Rails 6] Laufzeitfehler mit $ Rails s
Gerät mit Schienen handhaben
[Schienen] Test mit RSpec
Automatisieren Sie das Format mit dem Maven-Formatierer
[Rails] Entwicklung mit MySQL
Formatieren Sie JSON mit org.json
Unterstützt Mehrsprachigkeit mit Rails!
Site Map im RSS / Atom-Format mit Ruby on Rails erstellt
[Rails] Polymorph mit graphql-rubin ausdrücken
[Rails] Videos mit Rails hochladen (ActiveStorage)
[Vue Rails] "Hallo Vue!" Wird mit Vue + Rails angezeigt
Japanisieren Sie mit i18n mit Rails
Formatieren Sie Ruby mit VS-Code
Vorbereitung für die Entwicklung mit Rails
Führen Sie Rails immer im Docker aus
So geben Sie db beim Erstellen einer App mit Rails an
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Verwenden Sie mit Rails 6.0 mehrere Datenbanken
Übergeben Sie die Parameter an Rails link_to
[Docker] Wird immer mit Docker + Rails verwendet
[Rails] Ich möchte beim Übergang mit link_to Daten zu Params hinzufügen
Erstellen Sie ein Portfolio mit Rails + Postgres SQL
[Schienen] Getriebe mit LINE Bot schieben
[Rails] Pagenation mit Ajax kompatibel machen
[Grover] PDF mit Rails generieren [Version 2020]
Strg-Z funktioniert, es gibt also eine Möglichkeit zu unterbrechen und zu töten: Dies ist mühsam und kann den falschen töten. Sie können dies in ein Python-Skript schreiben. Verfolgen Sie Rails-App-Fehler mit Python, C-Erweiterung Sentry
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Stellen Sie mit dem iPhone eine Verbindung zum Rails-Server her
Erstellen Sie meine Seite mit Rails
Einführung in React to Rails mit React-Rails
[Rails] Erste Dateneingabe mit seed_fu!
Zeitlose Suche mit Rails + JavaScript (jQuery)
[Schienen] Machen wir einen Unit-Test mit Rspec!