Elliott Blatt wrote:
> Hi,
> 
> I'm using attachment_fu with great success, but have run into a
> requirement that I'd like to solve elegantly --  but I've outstripped my
> ruby skills.
> I have a class that returns a hash of thumbnail definitions, like so:
>     class Thumb
>        def  self.get_thumbs(style)
>           return { :small => "100x50",  :large  => "200x100" }  if style
> == 'landscape'
>           return { :small => "50x100",  :large  => "100x200" }  if style
> == 'portrait'
>        end
>     end
> 
> My attachment model is defined like this:
> 
>     class Photo < ActiveRecord::Base
>          has_attachment :content_type => :image,
>              :thumbnails => Thumb.get_thumbs(??????)
>        [...more stuff ...]
>     end
> 
> My photos controller has the following line:
> 
>      @photo = Photo.new(params[:photo])
> 
> My question:
> 
> I'd like dynamically determine what value to set to Thumbnail.get_thumbs
> based on values set in the  Photo.new constructor.  Is this possible?
> I've fooled around with attr_accessors,  lambdas, etc, but, I can't seem
> to do what I want.   Is it possible to make such a run-time decision as
> I'm trying to make?
> 
> Which is to say, if params[:photo][:style] = 'portrait', i'd like to cut
> the thumbnails accordingly?
> 
> 
> Does anyone have an elegant solution for this?

A non-thread-safe solution may be:

after_save 'attachment_options[:thumbnails] = Thumb.get_thumbs(style)'
has_attachment :content_type => :image,
                :thumbnails => Thumb.get_thumbs('landscape')

but a better solution may be to add PortraitPhoto and LandscapePhoto
sub-classes.

-- 
Rails Wheels - Find Plugins, List & Sell Plugins - http://railswheels.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to