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
:path
belirtmezsekpaperclip
dosyaları 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