2010-06-04 12 views
58

Używam spinacza do przesyłania i automatycznej zmiany rozmiaru zdjęć w mojej aplikacji Rails i uwielbiam to. Jedynym problemem jest to, co drugi miesiąc, gdy mój zwariowany menadżer zdecyduje, że chce mieć nowy rozmiar do wyświetlania zdjęć. Dlatego dodam nowy styl do mojego modelu zdjęć i wszystko jest dobre dla nowych zdjęć, ale istniejące wcześniej zdjęcia są teraz problemem . Teraz, gdy zaczynam mieć więcej niż kilka zdjęć do zrobienia, potrzebuję programowego sposobu zmiany rozmiaru istniejących zdjęć. Być może jest jakaś sztuczka spinacza do czegoś takiego? Naprawdę wolałabym nie musieć wymyślać RMagick i pisać scenariusza, jeśli nie muszę.Zmiana rozmiaru istniejących obrazów na nowy styl w spinaczu do papieru i RMagick

+1

Nicea Pytanie Drogi +1 !!! –

Odpowiedz

79

Chcesz użyć metody Paperclip :: Attachment w wersji reprocess!. Zobacz the docs.

class User < ActiveRecord::Base 
    has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" } 
end 

# Console... 
>> User.find_each { |u| u.avatar.reprocess! } 

Ponadto, zgodnie z uwagami przed metody reprocess!, tam spinacz: odświeżyć zadania Rake, co może być prostsze.

+6

dzięki! spinacz: odświeżyć rake pracował świetnie – tybro0103

+0

utrzymując to polecenie w moich ulubionych, dziękuję :) – Richlewis

+4

Oto dokumentacja, aby zregenerować style spinacza. https://github.com/thoughtbot/paperclip/wiki/Thumbnail-Generation Komendą powinno być 'rake paperclip: refresh: YOUR_STYLE_HERE CLASS = User' – Hengjie

28

spróbować to zadanie natarcia dostarczone przez spinacz

rake paperclip:refresh:missing_styles 

Ref: https://github.com/thoughtbot/paperclip#post-processing

+5

... lub zrób to dla jednego modelu: 'rake paperclip: refresh: missing_styles CLASS = YourModelName' – Arcolye

+1

Nie zapomnij ustawić środowiska rails z zadaniem. 'rake paperclip: refresh: missing_styles CLASS = YourModelName RAILS_ENV = production' –

Powiązane problemy