Oswobodzony z PHP po pięciu latach komercyjnej batalii nareszcie od tygodnia pomykam na wymarzonych Torach.
Powiem wam… Jest przezacnie!!
Mam pierwszy problem. Bardzo liczę na Waszą pomoc.
Mam:
[code=ruby]class Original < ActiveRecord::Base
has_attached_file :photo, :styles => { :mini => “100x100#” }
has_many :versions
end
class Version < ActiveRecord::Base
has_attached_file :photo
belongs_to :original
end[/code]
Chcę zrobić upload fotki w oryginale a następnie z listy dostępnych rozmiarów miniaturek wybrać jeden i utworzyć jej wersję. Oryginał może mieć wiele wersji. Rozmiary wersji mogą się zmienić.
Nieudolnie próbowałem podmienić :styles instancji obiektu Version i odpalić metodę reprocess.
Domyślam się, że trzeba jakoś z Paperclip::Atachement pofiglować ale jakoś nie mam koncepcji.
Sprawdź http://github.com/markevans/dragonfly.
Chyba lepiej pasuje do Twoich potrzeb, bo wymiary podajesz dopiero w widoku, możesz więc podać cokolwiek, np:
@czak: dragonfly doskonały pomysł ale nie dla mnie bo przy tworzeniu niektóre wersje będą miały opcję przycięcia więc samym oryginałem tego nie rozwiążę.
@Artur79: dzięki za link, dzięki niemu trafiłem na stronkę z rozwiązaniem.
[color=red]To jest złe rozwiązanie (nie działa na produkcji patrz ostatni post):[/color][code=ruby]class Version < ActiveRecord::Base
has_attached_file :photo, :styles => { :custom => Proc.new
{ |instance| “#{instance.photo_width}x#{instance.photo_height}>” } }
belongs_to :original
before_save :reprocess_photo