- Programação

Criando um Sistema de Uploads de Arquivos com Paperclip em Ruby on Rails

O Ruby on Rails é um framework popular para desenvolvimento web que oferece várias ferramentas para simplificar a criação de aplicações. Uma das funcionalidades mais comuns em muitas plataformas é o upload de arquivos. Para isso, o Paperclip é uma excelente gem que facilita a integração de uploads de arquivos em aplicações Rails. Neste artigo, vamos explorar como configurar e usar o Paperclip para permitir uploads de arquivos em seu sistema.

1. Adicionando o Paperclip ao seu Projeto

Para começar, você precisa adicionar a gem Paperclip ao seu Gemfile:

gem 'paperclip', '~> 6.1'

Em seguida, execute o comando para instalar a gem:

bundle install

2. Configurando o Modelo para o Upload de Arquivos

Com a gem instalada, o próximo passo é configurar o modelo onde o arquivo será armazenado. Por exemplo, se você estiver criando um sistema de upload para usuários, adicione o campo avatar ao modelo User:

rails generate paperclip user avatar

Isso criará uma migração que adiciona os campos necessários para armazenar o arquivo. Execute a migração:

rails db:migrate

3. Definindo o Upload no Modelo

Agora, abra o modelo User e defina o upload do arquivo utilizando o Paperclip. No arquivo user.rb, adicione:

class User < ApplicationRecord
  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }
  validates_attachment_content_type :avatar, content_type: ["image/jpg", "image/jpeg", "image/png"]
end

Aqui, estamos configurando o Paperclip para gerar duas versões da imagem: medium e thumb. Também estamos validando o tipo de conteúdo para garantir que apenas imagens com formatos JPG e PNG sejam aceitas.

4. Permitindo o Upload no Formulário

No formulário de criação ou edição do usuário, você pode permitir o upload de arquivos com o seguinte código no arquivo de visualização (por exemplo, app/views/users/_form.html.erb):

<%= form_for @user do |f| %>
  <%= f.label :avatar %>
  <%= f.file_field :avatar %>
  <%= f.submit %>
<% end %>

Este formulário permite que os usuários escolham um arquivo de imagem para enviar.

5. Exibindo o Arquivo no Frontend

Após o upload do arquivo, você pode exibir a imagem no seu aplicativo. Para isso, no arquivo de visualização, use o seguinte código para mostrar o avatar do usuário:

<%= image_tag @user.avatar.url(:medium) %>

Isso irá exibir a versão “medium” da imagem. Se desejar exibir a versão “thumb”, basta substituir :medium por :thumb.

6. Considerações Finais

O Paperclip facilita muito a implementação de uploads de arquivos em Ruby on Rails. Ele oferece suporte a vários tipos de arquivos, além de permitir o dimensionamento de imagens e outras manipulações. Embora o Paperclip seja uma excelente opção para projetos menores ou existentes, vale notar que ele está em descontinuação, e alternativas como o ActiveStorage (incluído nativamente no Rails 5.2 e versões posteriores) podem ser consideradas para novos projetos.

Se você está em busca de uma solução prática e bem documentada para upload de arquivos em Rails, o Paperclip continua sendo uma excelente escolha para muitos casos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *