[RUBY] [Rails] Verwendung von Active Storage

Einführung

Mit Active Storage können Sie Methoden verwenden, die das Hochladen von Dateien wie Bildern erleichtern, und Sie können problemlos Tabellen zum Speichern von Bildern erstellen.

Inhaltsverzeichnis

  1. Einführung von Bildverarbeitungswerkzeugen
  2. Installieren Sie Active Storage
  3. So speichern Sie das Bild
  4. Bildanzeige

1. Einführung von Bildverarbeitungswerkzeugen

Zunächst werden wir das für die Bildverarbeitung erforderliche Bildkonvertierungswerkzeug und das Juwel vorstellen, um es von Rails verfügbar zu machen. Mit ImageMagic können Sie das Speicherformat von Bildern über die Befehlszeile erstellen, in der Größe ändern und ändern. Führen Sie den folgenden Befehl aus.

Terminal
brew install imagemagick

ImageMagic ist kein Juwel. Um mit Ruby oder Rails umgehen zu können, müssen Sie ein Juwel namens MiniMagick installieren. MiniMagic ist ein Juwel, mit dem ImageMagic in Ruby verwendet werden kann. Installieren Sie als Nächstes den Edelstein, um die Bildgröße zu ändern. Die Bildverarbeitung ist ein Juwel, das eine Funktion zum Anpassen der Bildgröße bietet, die mit MiniMagic nicht möglich ist. Fügen Sie es wie folgt am unteren Rand der Gemfile hinzu. Führen Sie dann die Bundle-Installation mit dem Befehl aus.

gemfile


gem 'mini_magick'
gem 'image_processing', '~> 1.2'

2. Installieren Sie Active Storage

Gehen Sie im Terminal wie folgt vor:

Terminal
rails active_storage:install

Nachdem die Migration für Active Storage erstellt wurde, gehen Sie wie folgt vor:

Terminal
rails db:migrate

3. So speichern Sie das Bild

Legen Sie die Zuordnungsdefinition fest und speichern Sie die Berechtigung für die Bildspalte zum Speichern von Bildern in Active Storage-Tabellen. Dieses Mal habe ich die Methode has_one_attached verwendet, um eine Bilddatei anzuhängen.

app/models/post.rb


class Post < ApplicationRecord
  ~Abkürzung~
  has_one_attached :image
  ~Abkürzung~
end

Die Bilddatei ist jetzt mit der Beitragstabelle verknüpft. ** Zu diesem Zeitpunkt müssen der Beitragstabelle keine Spalten hinzugefügt werden. ** ** **

Fügen Sie dann dem starken Parameter ein Bild hinzu, damit die Bilddatei gespeichert werden kann.

app/controllers/posts_controller.rb


class PostsController < ApplicationController
  ~Abkürzung~
  def post_params
    params.require(:post).permit(:name, :image, :price, :evaluation, :description, :category_id, :shop_name).merge(user_id: current_user.id)
  end
  ~Abkürzung~
end

4. Bildanzeige

Zeigen Sie das Bild mit der image_tag-Methode an, einer Hilfsmethode von Rails.

Beispiel
<%= image_tag post.image, class: "post-img" %>

Sie können die angehängte Methode verwenden, um Fehler zu vermeiden, wenn das Bild nicht vorhanden ist.

Beispiel
<%= image_tag @post.image ,class:"user-box-img" if @post.image.attached? %>

Wenn Sie wie oben schreiben, wird image_tag nur gelesen, wenn das Bild vorhanden ist.

Wenn Sie Active Storage installiert haben, können Sie die Variantenmethode verwenden. Sie können die Anzeigegröße der Bilddatei mithilfe der Variantenmethode angeben.

Beispiel
<%= image_tag post.image.variant(resize: '500x500'), class: "post-img" %>

Recommended Posts

[Rails] Verwendung von Active Storage
[Rails] Verwendung von Enum
[Rails] Verwendung von Enum
Verwendung von Rails Join
[Rails] Verwendung der Validierung
[Rails] So verwenden Sie authenticate_user!
[Schienen] Verwendung von Scope
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Verwendung von Flash-Nachrichten
Verwendung von Ruby on Rails
[Einführung in Rails] Verwendung von Render
Verwendung von MySQL im Rails-Tutorial
[Ruby on Rails] Verwendung von redirect_to
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
[Rails] Verwendung von video_tag zum Anzeigen von Videos
[Rails] Verwendung der Hilfsmethode, Confimartion
Verwendung von credentials.yml.enc aus Rails 5.2
Verwendung von Map
Wie schreibe ich Rails
Wie benutzt man rbenv?
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung der Karte
Verwendung von collection_select
Wie benutzt man Twitter4J
Wie benutzt man active_hash! !!
Verwendung von MapStruct
Verwendung von TreeSet
So deinstallieren Sie Rails
[Verwendung des Etiketts]
Wie man Identität benutzt
Wie man Hash benutzt
Verwendung von Dozer.mapper
Wie benutzt man Gradle?
Verwendung von org.immutables
Verwendung von java.util.stream.Collector
Verwendung von VisualVM
Verwendung von Map
[rails6.0.0] Speichern von Bildern mit Active Storage im Assistentenformat
[Rails] Verwendung von Auswahlfeldern in Ransack
Verwendung von Schienen g Gerüst, Funktionen, Vorsichtsmaßnahmen
Verwendung von JQuery in Rails 6 js.erb
So verknüpfen Sie Bilder mit FactoryBot Active Storage
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
[Schienen] Wie poste ich Bilder?
Verwendung der Ketten-API
[Java] Verwendung von Map
Verwendung der Warteschlange mit Priorität
Verwendung von JUnit (Anfänger)
Verwendung von Ruby return