Bom dia, boa tarde, boa noite
Vamos seguindo nossa série de tutoriais sobre ruby on rails. Hoje vou mostrar como fazer para enviar arquivos associados ao model no Rails, e também como redimensionar fotos com ruby on rails, tópicos bastante interessantes, e resolvidos de forma muito simples, graças ao plugin paperclip.
Segue o comando que você deve rodar para instalar o paperclip na sua aplicação Rails:
ruby script/plugin install git://github.com/thoughtbot/paperclip.git
Seguem alguns links de apoio para este episódio:
- Instalando rMagick no Mac OS X Leopard
- Instalando rMagick no Windows
- Instalando rMagick no Linux
E, caso vocês ainda não tenham baixado a aplicação, entrem no repositório do github e façam isso. Caso não saiba como fazer, assista o episódio número 5.

Excelente dica.
Parabéns pelo um ano do Screencaster. ;D
Poderia fazer com que o “cliente”, na hora de fazer o Upload, escolher se desejasse miniatura ou médio?
Abraços.
Acredito que sim Thiago, é difícil algo que não seja possível com Rails =]
Dê uma olhada na documentação do paperclip sobre isso
Só mais uma dúvida, Guilherme. =D
Demora muito o próximo screeencat? hehehehehe Fiquei fissurado por Ruby On Rails.
Abraços.
Espero que não, vou tentar continuar o mais breve possível
Sei que essa minha dúvida não tem muito haver com o assunto, mas o Ruby On Rails é seguro?
NUnca programei mas me disseram que tem como deixar o PHP mais seguro. E com o Ruby (On Rails)? A única linguagem que estou aprendendo é ActionScript e ainda estou no começo.
Creio eu que Ruby (On Rails) seja seguro por ser Orientado a Obejeto.
to acompanhando essas aulas faz poco tempo… mas to mto satisfeito ja…. continua assim inside.. ta mandando bem cara….
sempre q der eu dou umaa passada aki abraço!
Thiago, o Rails cuida da parte de segurança quase toda para você. Tem alguns cuidados que precisam ser tomados, que pretendo tratar num screencast futuro.
Que bom que está gostando Filipe
Muito bom.
Ainda uso Ruindows ,estou ficando apaixonado por Mac.
Que soft vc usa pra gravar as aulas ?
Screenflow
Primeiramente, parabéns… ficando legal!!
Começei a assistir ontem e já estou esperando o sétimo video!!
Bom… só está acontecendo uma coisa, fiz tudo como você fez, quando atualizo um item que não tinha foto, é criado lá dentro de uploads/foto/[numero_do_item]/[arquivo], tudo certinho. Porém, na view show, não apresenta a foto, mesmo eu colocando aquele parâmetro (:miniatura).
O caminho que uma foto encontra-se por exemplo quando vejo pelo browser é:
http://localhost:3000/uploads/fotos/4/tn_apple_macbook_13-inch_white_miniatura.jpg?1238733526
Estou fazendo algo errado?
Abraço e mais uma vez, meus parabéns!!!
Ótimo video tutorial
Não imaginava que o Paperclip fosse tão fácil de usar
Kra muito show, agora consigo entender esse ruby on rails, a muito tempo vinha lendo até procurando videos mas nada foi desse nivél, continue assim.
Estou esperando pelos proxímos.
Ótimo tutorial, estou esperando os próximos.
Não entendo quase nada de RoR, mas gostaria de saber se é muito dificil para fazer um upload de imagens, mas ao invés de enviar somente uma foto para um produtos eu pudesse enviar a quantia que eu escolhesse, igual no gallery.
Rafael, neste caso você criaria um model chamado foto, colocaria nele belongs_to :produto, e em produto has_many :fotos, e colocaria o paperclip no model foto. Bem resumidamente é isso
[]’s
Otimo screen!
Só queria uma dica…
talvez aconteça do usuario subir uma imagem com nome parecido, entao queria que o nome da imagem fosse um random de numeros (Ex.: 79842168456121.jpg)…tem como??
Blz!
Consegui!
/images/profiles/:style/:style_#{Array.new(20){(rand(9))}.join}.:extension
Retornou algo do tipo: medium_45122234545241131158.jpg
tentei o q o antonio disse mais o arquivo fica com o nome certinho e no banco de dados nao??
ex: na pasta eu encontro uma imagem 93419381293.jpg mais no banco esta imagemteste.jpg
como resolver isso?
Estou acompanhando todos os Videos e não estou conseguindo fazer a gravação da imagem, me retorna a seguinte mensagem:
2 errors prohibited this produto from being saved
There were problems with the following fields:
Foto C:/DOCUME~1/ANDRE~1.CAR/CONFIG~1/Temp/stream.5516.0 is not recognized by the ‘identify’ command.
Foto C:/DOCUME~1/ANDRE~1.CAR/CONFIG~1/Temp/stream.5516.0 is not recognized by the ‘identify’ command.
Porque esta dando esta mensagem de erro?
Desde já agradeço o seu apoio.
Obrigado.
André, isto me parece algum problema com a sua instalação do image magick. Não saberia explicar exatamente qual o problema, pesquise por este erro no Google e veja o que descobre.
Fala alguem,
O que eu preciso para rodar o script “ruby script/plugin install git://github.com/thoughtbot/paperclip.git”
Tento que ter o git instalado. Tentei instalar lendo um tuto do blog do akita, mais eu acho que ele estava ensinando a configurar um servidor proprio.
Por favor me ajudem, to querendo chegar logo ao screen cast 11 e este esta comlicado demais.
Vlw galera.
O inside, da uma forca ai, pode ser explicacao de instalacao para windows ou linux.
Vlw nvmt.
Quando coloco a tag
{ :multipart => true }) do |f| %>
na hora de cadastrar o produto a pagina fica em branco, alguem sabe me dizer o pq?
Ei Andre, instala isso aqui que resolve teu problema:
http://www.imagemagick.org/download/binaries/ImageMagick-6.5.4-2-Q16-windows-dll.exe
E pra quem usa linux:
sudo apt-get install imagemagick
Olá, queria saber como seria, se eu quisesse fazer upload por exemplo de um arquivo pdf, e depois mostrar um link na view show para este pdf e abrí-lo em outra janela ! Por favor se puder me ajudar, estou desenvolvendo um aplicativo de Leis para a Prefeitura da minha cidade, e só está me faltando isso pra terminar !
Agradeço desde já =D
Olá Norba. Para fazer upload de outros tipos de arquivo apenas ignore a parte dos tamanhos da imagem (styles), o resto a princípio continua igual. No entanto, recomendo que dê uma verificada na documentação do paperclip para ver o que você deve fazer para tratar o upload corretamente.
Deu certo o upload dos arquivos em pdf, valew cara !
Continue assim, ajudando a todos !