Rails para upload de arquivos e imagens usando o plugin paperclip 2

Postado por Herminio em março 24, 2009

Bem, irei mostrar como fazer upload de arquivos utilizando o paperclip e poderemos notar como é super simples de utilizar. Se o arquivo for imagem iremos precisar do imagemagick instalado na maquina onde irá ficar sua aplicação, pois o plugin utiliza o imagemagick para mexer com imagens.

Para o download do paperclip existe duas maneiras. Uma é baixando pelo próprio rails e a outra é indo no site e fazendo o download e descompactando na sua aplicação.

O paperclip por sua vez requerer algumas colunas no modelo para que seja necessário o seu funcionamento. E quais são elas?

Pois bem, digamos que na sua aplicação exista o modelo user, onde cada user contem uma imagem que é o seu avatar.  Podemos fazer o seguinte:

Agora iremos trabalhar o paperclip a nível de model. Vamos colocar toda a nossa regra de negocio e veremos como o sistema deverá tratar o upload de arquivos.

Bem não iremos fazer nenhuma modificação nos controllers. Então vamos partir para as views e finalizar o nosso tutorial.

Primeiramente vamos criar um partial, onde essa view será comum tanto para as telas de new.html.erb como edit.html.erb. Em sua aplicação vá até SUA_APLICAÇÂO/app/view/users/ e crie um arquivo chamado _user.html.erb e veja como será o código desse arquivo.

Agora, que temos o partial _user.html.erb precisamos adaptar as telas de edit.html.erb e new.html.erb então vamos seguir o seguinte código:

E nas views index.html.erb e show.html.erb iremos fazer a chamada da imagem.

Finalmente terminamos o nosso objetivo de fazer com que a nossa aplicação faça upload de arquivos. E caso você queira saber mais sobre o paperclip basta acessar a sua Documentação/RDoc ou entrar na lista de discussão do paperclip. É isso pessoal espero que tenham gostado.


Se você gostou desse post, me recomende:

Recommend Me

  • Existe vários erros de rotas, assim sem vê o código e o erro fica meio difícil. Mas você pode colocar seu código em http://pastie.org/ ? Cola teu código de config/routes.rb e o código da view e do controller? Que eu posso analisar e dizer o problema.

    Grato!
  • Ótimo artigo, porém vi um problema com o paperclip com relação às rotas. Na aplicação, o upload funciona muito bem, a chamada de image.url funciona na boa e o arquivo do link é o mesmo do que foi configurado. O problema é que ao abrir, ocorre um erro dizendo que houve um problema de rota para aquele endereço (o endereço do arquivo)
    Você saberia dizer do que se trata isso?
blog comments powered by Disqus