2012-04-25 5 views
13

をレールにアップグレードした後、パス、私は(3.0.10から)3.2をレールにアップグレードした後、ペーパークリップ(3.0.2)に問題があります。ペーパークリップチェンジ画像3.2

はもともと一つの画像のパスは:

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

とアップグレード後の画像のこの種を再び表示しない!しかし、私は、新しい画像をアップロードする場合は、このページに罰金表示するが、新しいパスますその使用は:

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

アップグレードで何が起こったのですか?古いパスを新しいパスに変換するためのソリューションはありますか?しかしdosen't作品

は私が ":リフレッシュmissing_stylesすくいクリップ" としてみてください。

それはこのだクリップのconfigセクション。

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" 

ありがとうございます。元の電流経路との間の「小」対「Smalの」差を仮定

+1

を置くことができる新しいURIの「SmaIで」セグメントタイプミスですか? – Christian

+0

クリップクリップもアップグレードしましたか、それともRailsだけをアップグレードしましたか? –

+0

添付ファイルのPaperclipオプションを扱う関連モデルのセクションを投稿できますか? –

答えて

1

がタイプミスである、他の明らかな変化は、「/ /写真」の後に2つの数値のセグメントの付加です。

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

これはパスに使用されているid_partitionからのものと思われます。別の場所で別のデフォルトパス補間を設定していますか?

Paperclipのコードを見ると、私はid_partition methodを参照していますが、デフォルト動作の変更の方向を示すドキュメントはまだ見つかりませんでした。私はそれがバグか文書化されていない変更かどうかを判断するために、宝石のコードに従うことをやめました。

+0

感謝の男、それを編集しました。 – jgiunta

3

私は同様のアップグレードを持っていたし、私の問題を中心に、このようにルーティングさ:

has_attached_file :image, 
    :url => "/images/photos/:id/:basename_:style.:extension", 
    :path => ":rails_root/public/images/photos/:id/:basename_:style.:extension", 
+0

@heavysixersaysとして、このように:pathオプションを設定すると、以前と同じように動作するようにPaperclipが強制されます。私はエラーの理由を確認しようとします – Christian

+0

ありがとう!これはパスを強制するオプションです、私は動作しますが、自動的にマイグレーションを意味するメソッドが存在する可能性があります。 – jgiunta

+0

@jgiunta私は自動的に移行する方法はないと思います。あなたはそのことについて[この他の質問](http://stackoverflow.com/questions/10251309/paperclip-s3-migrating-existing-files-from-one-path-format-to-another/10337918#10337918)を読むことができます – Christian

14

私は同じ問題を抱えていました。あなたは設定/初期化子/ paperclip.rbのようなファイルを作成することによって、これを修正し、

Paperclip::Attachment.default_options.merge!(
    :path => ":rails_root/public/system/:attachment/:id/:style/:basename.:extension", 
    :url => "/system/:attachment/:id/:style/:basename.:extension" 
)
+1

古い場所から新しい場所にファイルを移動するスクリプトやレーキのタスクはありますか? –