[RUBY] [Rails] Comment utiliser Active Storage

introduction

Avec Active Storage, vous pouvez utiliser des méthodes qui facilitent le téléchargement de fichiers tels que des images, et vous pouvez facilement créer des tableaux pour stocker des images.

table des matières

  1. Introduction d'outils de traitement d'image
  2. Installez Active Storage
  3. Comment enregistrer l'image
  4. Affichage de l'image

1. Introduction d'outils de traitement d'image

Tout d'abord, nous présenterons l'outil de conversion d'image requis pour le traitement d'image et le gem pour le rendre disponible à partir de Rails. ImageMagic vous permet de créer, redimensionner et modifier le format d'enregistrement des images à partir de la ligne de commande. Exécutez la commande suivante.

Terminal
brew install imagemagick

ImageMagic n'est pas une gemme, donc pour la gérer avec Ruby ou Rails, vous devez installer une gemme appelée MiniMagick. MiniMagic est un joyau qui permet à ImageMagic d'être utilisé dans Ruby. Ensuite, installez la gemme pour modifier la taille de l'image. Le traitement d'image est une gemme qui fournit une fonction pour ajuster la taille de l'image, ce qui n'est pas possible avec MiniMagic. Ajoutez-le au bas du gemfile comme suit. Ensuite, exécutez l'installation groupée avec la commande.

gemfile


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

2. Installez Active Storage

Dans le terminal, procédez comme suit:

Terminal
rails active_storage:install

Maintenant que la migration liée à Active Storage est créée, procédez comme suit:

Terminal
rails db:migrate

3. Comment enregistrer l'image

Définissez la définition d'association et enregistrez l'autorisation pour la colonne d'image de stocker des images dans des tables de stockage actif. Cette fois, j'ai utilisé la méthode has_one_attached pour joindre un fichier image.

app/models/post.rb


class Post < ApplicationRecord
  ~Abréviation~
  has_one_attached :image
  ~Abréviation~
end

Le fichier image est maintenant lié à la table des articles. ** Pour le moment, il n'est pas nécessaire d'ajouter des colonnes à la table des publications. ** **

Ajoutez ensuite l'image au paramètre strong pour permettre l'enregistrement du fichier image.

app/controllers/posts_controller.rb


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

4. Affichage de l'image

Affichez l'image à l'aide de la méthode image_tag, qui est une méthode d'assistance de Rails.

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

Vous pouvez utiliser la méthode ci-jointe? Pour éviter les erreurs lorsque l'image n'existe pas.

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

En écrivant comme ci-dessus, image_tag est en lecture uniquement lorsque l'image existe.

Si vous avez installé Active Storage, vous pouvez utiliser la méthode des variantes. Vous pouvez spécifier la taille d'affichage du fichier image à l'aide de la méthode des variantes.

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

Recommended Posts

[Rails] Comment utiliser Active Storage
[Rails] Comment utiliser enum
[Rails] Comment utiliser enum
Comment utiliser la jonction de rails
[Rails] Comment utiliser la validation
[Rails] Comment utiliser authenticate_user!
[Rails] Comment utiliser Scope
[Rails] Comment utiliser la "devise" des gemmes
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Comment utiliser les messages flash
Comment utiliser Ruby on Rails
[Introduction aux rails] Comment utiliser le rendu
Comment utiliser MySQL dans le didacticiel Rails
[Ruby on Rails] Comment utiliser redirect_to
[Note] Comment utiliser Rails 6 Devise + cancancan
[Rails] Comment utiliser video_tag pour afficher des vidéos
[Rails] Comment utiliser la méthode d'assistance, confimartion
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment utiliser Map
Comment écrire des rails
Comment utiliser rbenv
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
Comment désinstaller Rails
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Comment utiliser le hachage
Comment utiliser Dozer.mapper
Comment utiliser Gradle
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser Map
[rails6.0.0] Comment enregistrer des images en utilisant Active Storage au format assistant
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Comment utiliser les rails g échafaudage, fonctions, précautions
Comment utiliser JQuery dans Rails 6 js.erb
Comment lier des images à l'aide de FactoryBot Active Storage
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
[rails] Comment publier des images
Comment utiliser l'API Chain
[Java] Comment utiliser Map
Comment utiliser Queue avec priorité
Comment utiliser JUnit (débutant)
Comment utiliser le retour Ruby