Dosya upload işlemleri için genellikle Paperclip kulanıyoruz. Paperclipte :path parametresi ile dosyanın hangi path altına kaydedeliceğini belirtebiliyoruz. Product modelindeki :picture için bir path belirledik. Dosyalar public/system/products/pictures/ dizinin altına :style(original, icon, small, large) klasörününde içine "#{id}-#{name.parameterize}.format" olarak kaydedilyor. Linklerde http://localhost:3000/system/products/pictures/original/1-bilgisayar.jpeg şeklinde oluyor. Peki biz bu path’ i ürün production’ a çıktıktan sonra değiştirirsek ne olur ?. Ne olacak tüm dosya linkleri patlayacak :) Yani eski dosyaları yeni path ile tekrar kaydettirmemiz gerekecek.
Önce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Sonra
1 2 3 4 5 6 7 8 9 10 | |
`
Dosyalar için bir
:pathbelirtmezsekpaperclipdosyaları default path ile kaydediyor.
Resimler şimdi public/system/products/pictures/000/:id/:style şeklinde kaydediliyor. Şimdi eski doyaları bu path altına yeniden kaydedelim. Bunun için kısa bir rake yazacağız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
filename’ e eski yolu atıyoruz. Eğer böyle bir yol var ise dosyayı yeniden kaydediyoruz. Kaydedilen dosyada yeni path ile kaydediliyor. Eski dosyalar hala duruyor ama.
Son olarakta Rake’ i çalıştıralım
1
| |
İyi çalışmalar dilerim