2009-07-01 4 views
0

Des idées sur la façon d'obtenir la largeur et la hauteur de l'image miniature? photo.width renvoie la largeur des photos d'origine. Je stocke la largeur de la vignette dans la base de données, je ne suis pas sûr de la façon d'accéder à cet objet.Attachment_Fu thumbnail width

ne fonctionne pas:

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

Ni ce que cela:

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

Répondre

1

Par par défaut, attachment_fu ne charge que la photo parente d'une table pour obtenir des informations comme l'URL. Lorsque vous lui passez une option de miniature, il ajoute simplement la taille appropriée à la fin du nom de fichier avant l'extension.

Si vous voulez obtenir la taille, vous aurez besoin de chercher dans le tableau avec quelque chose comme, Photo.find_by_parent_id (photo.id,: conditions => ['thumbnail =?', 'Thumbnail_class_name ']). width

Il est préférable de connaître au préalable la largeur d'une photo, du moins si vous l'utilisez pour tout ce qui serait exécuté souvent.

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

Pour obtenir la hauteur et la largeur est ce que je ferais

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