[RUBY] [Rails] Enregistrez des images à l'aide de carrierwave

Ce sera comme titre.

Le but est d'afficher l'image.

Gemme introduite

Tout d'abord, insérez une gemme. Si vous ne spécifiez pas la version, la dernière version sera installée.

Gemfile


gem 'carrirewave'

Merci pour votre soutien continu au terminal.

$ bundle install

Génération de fichiers Uploader

Ensuite, créons un fichier de téléchargement.

$ rails generate uploader Image
create  app/uploaders/image_uploader.rb

Vous devriez maintenant avoir ʻimage_uploader.rb dans ʻapp / uploaders.

Au fait, la partie de ʻImage` est le nom du modèle à monter, Un nom descriptif. Je génère souvent avec Image.

image_uploader.rb


class ImageUploader < CarrierWave::Uploader::Base
 # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  # include CarrierWave::MiniMagick
  # process resize_to_fit: [300, 200]

  # version :thumb do
  #   process :resize_to_fit => [50, 50]
  # end

  #Omis ci-dessous
end

Vous pouvez définir les paramètres liés au téléchargement d'images dans ce fichier. Par exemple, vous pouvez limiter l'extension de l'image que vous téléchargez, redimensionner l'image et bien plus encore.

Ecrire sur le modèle

Montons le fichier créé précédemment sur le modèle sur lequel vous souhaitez télécharger des images.

Cette fois, considérons le cas où vous souhaitez enregistrer une image dans la colonne image du modèle hoge.

hoge.rb


class hoge < ApplicationRecord
  mount_uploader :image, ImageUploader
end

Créez un formulaire pour vous inscrire

Nous vous donnerons les informations nécessaires sur chaque page.

hoges_controller.rb


class ArticlesController < ApplicationController

  def new
    @article = Article.new
  end

  def create
    @article = Article.new(user_params)
    if @article.save
      redirect_to user_path(@article)
    else
      render :new
    end
  end

  private
  def article_params
    params.require(:article).permit(:image)
  end
end

/hoges/new.html


<%= form_with model: @hoge, local: true do %>
    <div class="field">
		<%= f.label :image %>
		<%= f.file_field :image %> <!--L'image est un fichier_field -->
	<div class="action">
		<%= f.submit %>
	</div>
<% end %>

Afficher les images téléchargées

L'image est essentiellement affichée en écrivant comme suit.

<%= image_tag @article.image.url %>
<%= image_tag @article.image.to_s %> 

À la fin

Merci d'avoir lu jusqu'au bout. J'espère que cela aidera ceux qui étudient.

Recommended Posts

[Rails] Enregistrez des images à l'aide de carrierwave
[Rails] Comment télécharger des images à l'aide de Carrierwave
[Rails] Comment télécharger plusieurs images à l'aide de Carrierwave
[Rails] Présentation de Carrierwave
[Rails] Comment télécharger des images sur AWS S3 à l'aide de Carrierwave et de fog-aws
[rails6.0.0] Comment enregistrer des images en utilisant Active Storage au format assistant
Téléchargez facilement plusieurs images avec rails rails + carrierwave + cloudinary
CarrierWave Télécharger plusieurs images
Utiliser des images avec des rails
Enregistrer les données d'un fichier Excel à l'aide de Rails Gem Roo
Ajouter, enregistrer, supprimer, ajouter des colonnes, enregistrer des images à partir de rails Création de bases de données
Comment télécharger des images depuis AWS S3 (rails, carrierwave)
[rails] Comment publier des images
[Rails API + Vue] Télécharger et afficher des images à l'aide du stockage actif
Authentification SNS à l'aide de Rails google
Japaneseize en utilisant i18n avec Rails
[Rails] Localisation japonaise à l'aide de rails-i18n
[Rails 6] La durée de sauvegarde des images active_strage a été modifiée.
Enregistrer et afficher plusieurs images
Obtenez des images Twitter avec twitter4j
Rails Active_storage -Simplifier l'enregistrement des images-
[Rails] Code de test à l'aide de Rspec
Erreur lors de l'utilisation des rails capybara
[Rails] Essayez d'utiliser le middleware de Faraday
Conseils détaillés lors de l'utilisation de Rails
[Rails 6] Revue en forme d'étoile utilisant Raty.js
[Rails] Comment télécharger des images sur AWS S3 à l'aide de refile et refile-s3
Téléchargement d'images à l'aide de CarrierWave ~ Test Rspec ~
[Hidden_field] Envoyez des informations en utilisant les rails hidden_field !!!!
[Rails] Enregistrer l'heure de début et l'heure de fin
Obtenez PV (vues) en utilisant impressionniste ~ Rails
[Rails] Fonction de gestion des balises (en utilisant des actes comme des balises)
[Rails 6] Deux méthodes pour saisir plusieurs images à la fois à l'aide de CarrierWave / (1) Saisie avec les données de départ initiales / (2) Importer avec CSV
[Rails 6] Développement d'API à l'aide de GraphQL (Query)
[Rails] Fonction de publication vocale ~ Cloudinary, CarrierWave
Enregistrer ArrayList à l'aide de GSON sur Android
[Rails 6] détruit en utilisant la méthode des ressources
[Rails] "Entrée" -> "Écran de confirmation" -> "Enregistrer" -> "Afficher"
[Rails] Mise à jour de l'état à l'aide de la tâche Rake