On 10/1/07, Michel Belleville <[EMAIL PROTECTED]> wrote:
> Je reviens appeller à l'aide parce que j'ai l'impression d'avoir manqué un
> truc sans savoir lequel.
> Toujours dans le contexte de ce même problème, j'ai fait la fonction
> suivante dans le modèle d'image :
>
> def recrop_thumb!(top, left, size, thumb)
>
> size = size.first if size.is_a?(Array) && size.length == 1
> size = [size.to_i, size.to_i] if ! size.is_a?(Array)
>
> thumb = thumbnails.find (:first, :conditions => {:thumbnail => thumb})
>
> thumb.db_file.data =
> Magick::Image.from_blob(db_file.data).first.crop(top, left, size[0],
> size[1]).to_blob
>
> thumb.save!
> end
>
>
> Je sais, c'est encore propre, j'essaye avant tout d'avoir quelque chose qui
> fasse à peu près ce que je lui demande, après je verrais pour polir le
> fonctionnement.
>
>
> En gros, après avoir lu les paramètres (top / left pour le coin haut et
> gauche du recadrement, size pour les dimensions du recadrement, thumb pour
> le type de la vignette à modifier), on récupère la vignette correspondante
> dans la liste des vignettes de cet objet, puis on met dans "data" le
> recadrage, et enfin on sauvegarde la vignette ainsi modifiée.
>
> Apparement rien de transcendental.
>
> Sauf qu'évidement, ça ne marche pas, et ça me casse une erreur monstrueuse :
> NameError: undefined local variable or method `full_filename' for
> #<Image:0xb70d82b8>
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/base.rb:1860:in
> `method_missing'
> from
> ./script/../config/../config/../vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:276:in
> `temp_paths'
> from
> ./script/../config/../config/../vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:270:in
> `temp_path'
> from
> ./script/../config/../config/../vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:236:in
> `save_attachment?'
> from
> ./script/../config/../config/../vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:339:in
> `set_size_from_temp_path'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/callbacks.rb:333:in
> `send'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/callbacks.rb:333:in
> `callback'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/callbacks.rb:330:in
> `each'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/callbacks.rb:330:in
> `callback'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/callbacks.rb:295:in
> `valid?'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/validations.rb:761:in
> `save_without_transactions!'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/transactions.rb:133:in
> `save!'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:59:in
> `transaction'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/transactions.rb:95:in
> `transaction'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/transactions.rb:121:in
> `transaction'
> from
> ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/transactions.rb:133:in
> `save!'
> from
> ./script/../config/../config/../app/models/image.rb:70:in
> `recrop_thumb!'
>
> Je me demande ce que j'ai bien pu faire pour mériter une engueulade
> pareille...
>
> Si quelqu'un à une idée, je suis preneur, de toute façon je continue à
> chercher...
>
En lisant rapidement le code d'attachment_fu, j'ai l'impression
qu'attachment_fu attend obligatoirement en paramétre de data un
fichier et non un blob. Je pense que si tu crées ton thunbnail
directement dans temp et que tu le passe en param, ca devrait mieux
marché.
En effet il cherche dans le tmp_path à l'endroit où il plante. C'est
tout à fait logique qu'il ne trouve pas de path sachant qu'il n'y en
as pas.
En espérant avoir aidé un petit peu.
--
Cyril Mougel
http://blog.shingara.fr
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---