2009-07-01 18 views
0

Haben Sie Ideen, wie Sie die Breite und Höhe des Miniaturbildes erhalten? photo.width gibt die ursprüngliche Breite des Fotos zurück. Ich speichere die Breite des Thumbnails in der Datenbank, ich bin mir nicht sicher, wie ich auf dieses Objekt zugreifen soll.Attachment_Fu thumbnail width

funktioniert nicht:

<%= image_tag photo.authenticated_s3_url(:medium), 
       :width => photo.width, 
       :height => photo.height %> 

Weder tut dies:

<%= image_tag photo.authenticated_s3_url(:medium), 
       :width => photo.authenticated_s3_url(:medium).width, 
       :height => photo.authenticated_s3_url(:medium).height %> 

Antwort

1

tun By Standardmäßig lädt attachment_fu nur das übergeordnete Foto aus einer Tabelle um Informationen wie die URL zu erhalten. Wenn Sie eine Thumbnail-Option übergeben, wird die entsprechende Größe an das Ende des Dateinamens vor der Erweiterung angehängt.

Wenn Sie die Größe erhalten möchten, müssen Sie in der Tabelle mit etwas wie, Photo.find_by_parent_id (photo.id,: conditions => ['thumbnail =?', 'Thumbnail_class_name ']). width

Sie sollten besser wissen, die Breite eines Fotos im Voraus, zumindest wenn Sie dies für alles verwenden, was oft ausgeführt werden würde.

0
:thumbnails => { :crop_200x200 => 'c200x200', 
       :default_200x200 => '200x200', 
       :ex_200x200 => '200x200!', 
       :gt_200x200 => '200x200>', 
       :lt_200x200 => '200x200<'} 

Um die Höhe und Breite dieses zu erhalten ist, was würde ich

tname = 'crop_200x200' 
height= @picture.thumbnails.select{ |r| r.thumbnail == tname }.first.height 
width= @picture.thumbnails.select{ |r| r.thumbnail == tname }.first.width