[RoR] Upload de arquivo
21 jan 2012(há 13 anos)Introdução
Depois de algum tempo sem postar sobre rails voltei a assisti minhas videos aulas, e dando continuidade ao nosso producer link e hoje vamos ver como fazer upload de arquivos usando paperclip, sem mais delongas vamos nessa
Requisitos
Para esse parte do projeto é necessário a instalação do imagemagick, que não tem nada a ver com o Ruby ou Rails isso é um componente a ser instalado no OS, para instalar o imagemagick abra o terminal e rode:
sudo apt-get install imagemagick
Outra dependência para upload de arquivos é o paperclip esse é uma dependência referente a Ruby, para a configuração do paperclip é necessário adiciona-lo ao se Gemfile gem 'paperclip', '2.4.5'
, no meu caso 2.4.5 é a versão do paperclip na atualidade, e em seguida é só rodar bundle install
depois disso vamos codificar mais um pouco.
Ou ainda é possivel instalar o paperclip rodamdo um:
gem install paperclip
Se tudo correu bem quando rodarmos um
rails g
Veremos que foi adicionado mais uma generate o: paperclip
Iniciando
Vamos gerar um scaffold ainda não tem nada a ver com o paperclip
rails g scaffold Asset title:string description:string
Em seguida vamos usar o paperclip alterando o Modulo Asset que acabamos de gerar
rails g paperclip Asset document
Vamos rodar o um:
rake db:migrate
Troque o conteudo do asset_controller.rb por esse código.
Vamos agora agora adicionar algumas alterações no model de assets veja o código.
Bem o próximo passo é ajustar o formulário, uma das coisas que dá dor de cabeça até para os desenvolvedores mais experientes é o multipart, se não habilitar o multipart o upload não funciona, então vamos a receita de bolo para implementar o upload de arquivo.
- Verificar os requisitos comentado neste post
- Fazer validações no model
- Ativa o multipart do formulário código
Conclusão
Bem pessoal é isso com isso nosso projetinho já pode fazer upload de arquivo.