Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Paperclip change images path after upgrade to rails 3.2

i have a problem with paperclip (3.0.2) after upgrade to rails 3.2 (from 3.0.10).

Originally the path of one image was:

"http://localhost:3000/system/photos/94/small/AudiLogo.jpg?1335392139"

and after the upgrade this kind of images never show again!, but if i upload a new picture this will display fine on page, but the new path that use is:

"localhost:3000/system/products/photos/000/000/094/smal/AudiLogo.jpg?1335392139"

Whats happend in the upgrade ? There's any solution for convert the olds path to new ?

I try with "rake paperclip:refresh:missing_styles" but dosen't works.

The paperclip config section it's this.

has_attached_file :photo,
        :processors => lambda { |a|
                        if a.external?
                                [:thumbnail]
                        else
                                [:thumbnail,:watermark]
                        end
                        },
        :styles => {
                :slider => { :geometry => "350x312#", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png", :position => "NorthEast" },
                :small => "100x50>",
                :medium => "200>x200",
                :thumb => "100x100>",
                :big => { :geometry => "640x480>", :format => :jpg, :watermark_path => "#{Rails.root}/public/images/watermark.png" }
                },
        :default_url => "/images/noimage.png"

Thanks in advance.

like image 992
jgiunta Avatar asked Apr 25 '12 23:04

jgiunta


3 Answers

I had the same problem. You can fix this by creating a file like config/initializers/paperclip.rb and put

Paperclip::Attachment.default_options.merge!(
    :path => ":rails_root/public/system/:attachment/:id/:style/:basename.:extension", 
    :url => "/system/:attachment/:id/:style/:basename.:extension"
)
like image 133
ricardomerjan Avatar answered Oct 06 '22 19:10

ricardomerjan


I just had a similar upgrade and routed around my problem this way:

  has_attached_file :image,
    :url => "/images/photos/:id/:basename_:style.:extension",
    :path => ":rails_root/public/images/photos/:id/:basename_:style.:extension",
like image 22
heavysixer Avatar answered Oct 06 '22 17:10

heavysixer


Assuming the "small" vs "smal" difference between original and current path is a typo, the other obvious change is the addition of the two numeric segments after the "/photos/".

".../photos/000/000/094/smal/AudiLogo.jpg?1335392139"

I suspect this is coming from an id_partition being used for the path. Are you setting a different default path interpolation in some other place?

Looking at Paperclip's code I see the id_partition method that would be responsible for this but still have not found any documentation pointing in the direction of a change in the default behavior. I did't get to follow the code in the gem to determine if it is a bug or undocumented change.

like image 32
Christian Avatar answered Oct 06 '22 18:10

Christian