Upload de imagens e miniaturas
Criado por Myriam Leggieri, @iammyr para Rails Girls Galway
*Traduzido por Rafael Vianna, @RFerreiraVianna
Os guias básicos que foram mesclados e adaptados são os Ruby on Rails Tutorial, o basic RailsGirls app e os tutoriais são: creating thumbnails, authenticating users, adding design, deploying to OpenShift e adding comments.
Nós precisamos instalar uma nova Gem que nos permita fazer upload de arquivos no Rails.
Abra Gemfile
na sua pasta do projeto usando seu editor de texto e adicione:
No terminal execute:
Agora podemos gerar o código para a execução do upload. No terminal, execute:
Nesse momento você irá precisar reiniciar o servidor do Rails no terminal.
Precione Ctrl+C no terminal para parar o servidor. Uma vez parado, você pode apertar a seta pra cima no seu teclado para encontrar o último comando executado, então pressione o enter para iniciar o servidor novamente.
Isso é necessário para que o app carregue a biblioteca adicionada.
Abra app/models/place.rb
e adicione:
Abra app/views/places/_form.html.erb
e mude:
para:
Algumas vezes você pode obter um TypeError: can’t cast ActionDispatch::Http::UploadedFile to string.
Se isso acontecer, no arquivo app/views/places/_form.html.erb
mude a linha:
para:
Agora, se você executar o seu servidor e tentar adicionar um novo local com uma imagem, você notará que a imagem não parece bonita porque mostra apenas um caminho para o arquivo. Vamos consertar isso.
Abra app/views/places/show.html.erb
e mude:
para:
Agora recarregue seu navegador para ver a mudança.
Instrutor(a): Fale um pouco sobre HTML.
Instrutor(a): Explique o que especifica a largura da imagem em HTML no final da etapa 4 e como ele difere do redimensionamento de imagens no servidor.
Instalando ImageMagick
- macOS: Execute
brew install imagemagick
. Se você não tiver o comando brew, você pode instalar aqui. - Windows: Baixe e execute ImageMagick installer (use o primeiro download link de download). Depois reabra o Shell de comando do Rails.
-
Linux: No Ubuntu e Debian, execute
sudo apt-get install imagemagick
. Use o gerenciador de pacote apropriado ao invés de usarapt-get
para outras distribuições.
Instrutor(a): O que é ImageMagick e o que difere das bibliotecas usadas anteriormente?
Abra Gemfile
no projeto e adicione:
No terminal execute:
Fazendo nosso app criar miniaturas quando uma imagem é adicionada
Abra app/uploaders/picture_uploader.rb
e ache a seguinte linha:
Remova o #
.
Instrutor(a): Explique o conceito de comentários no código..
Abaixo da linha que você acabou de alterar, adicione:
As imagens carregadas a partir de agora serão redimencionadas, mas as imagens que já foram feitas não serão afetadas. Então, edite um dos lugares existentes e volte a adicionar uma imagem.
Mostrando as thumbnails
Para ver se a imagem carregada foi redimencionada abra,
app/views/places/index.html.erb
. Mude a linha:
para:
Dê uma olhada no seu navegador para ver se a miniatura está lá.
Outros Guias
- Handy cheatsheet for Ruby, Rails, console etc.
- Guia 1: Tutorial de Instalação para Rails Girls
- Guia 2: Tutorial para criação da app Rails Girls
- Guia 3: Como enviar para o GitHub
- Guia 4: Colocando seu app online em…
- Guia 5: Funcionalidades de uma área de comentários para a app Rails Girls
- Guia 6: Adicione design à sua aplicação com HTML e CSS
- Guia 7: Thumbnails em listas de ideas
- Guia 8: Autenticação (para usuários) com Devise
- Guia 9: Adicionando Gravatar para a aplicação
- Guia 10: Melhorando seu design da sua aplicação com HTML e CSS
- Guia 11: Continuous Deployment
- Guia 12: Construindo um aplicativo de votação em Sinatra
- Guia 13: Construa um diário em Ruby on Rails
- Guia 14: Adicione back-end ao seu aplicativo (páginas de administração)
- Guia 15: Acesse explicações adicionais do app Rails Girls