26 de Fevereiro de 2024 - @Walmir Neto
Hoje vou mostrar como fazer upload com https://github.com/avo-hq/avo e subi os arquivos para o AWS, e hoje vai ser daquele jeito, só o passo a passo
A primeira etapa é instalar o Active Storage executando o seguinte no diretório do aplicativo Rails
rails active_storage:install && rails db:migrate
É só descomentar a gem image_processing
--- a/Gemfile
+++ b/Gemfile
gem "bootsnap", require: false
# Use Active Storage variants [<https://guides.rubyonrails.org/active_storage_overview.html#transforming-images>]
-# gem "image_processing", "~> 1.2"
+gem "image_processing", "~> 1.2"
Rodar um bundle install
para instalar as dependências
Vamos adicionar um avatar
no model de User
--- a/app/models/user.rb
+++ b/app/models/user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable
+
+ has_one_attached :avatar
end
Agora vamos gerar um resources para usuários
bin/rails g avo:resource user
No arquivo app/avo/resources/user.rb
devemos adicionar o is_image: true
no campo avatar
class Avo::Resources::User < Avo::BaseResource
self.title = :email
def fields
field :email, as: :text
field :password, as: :password
field :avatar, as: :file, is_image: true
end
end
De forma bem resumida é só isso que precisamos, para podemos adicionar uma foto ao usuário é só acessar localhost:3000/avo/resources/users e fazer o upload do avatar. Depois de salvo os arquivos ficarão na pasta storage
, no me caso ficou assim:
storage
├── 00
│ └── yq
│ └── 00yqcs0j8un5q94yzkr1xxd00cnx
└── xk
└── sr
└── xksrvu5ip11qdspqw6jx9wb14ve7