Trying to get the width and height of the uploaded image while still in the model on the initial save.
Any way to do this?
Here\'s the snippet of code I\'ve
Ahh, figured it out. I just needed to make a proc.
Here's the code from my model:
class Submission < ActiveRecord::Base
  #### Start Paperclip ####
  has_attached_file :photo, 
                    :styles => {
                      :original  => "634x471>",
                      :thumb => Proc.new { |instance| instance.resize }
                    }, 
                    :storage => :s3,
                    :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                    :path => ":attachment/:id/:style.:extension",
                    :bucket => 'foo_bucket' 
  #### End Paperclip ####
  def resize     
     geo = Paperclip::Geometry.from_file(photo.to_file(:original))
     ratio = geo.width/geo.height  
     min_width  = 142
     min_height = 119
     if ratio > 1
       # Horizontal Image
       final_height = min_height
       final_width  = final_height * ratio
       "#{final_width.round}x#{final_height.round}!"
     else
       # Vertical Image
       final_width  = min_width
       final_height = final_width * ratio
       "#{final_height.round}x#{final_width.round}!"
     end
  end  
end
class Asset
include Mongoid::Paperclip
before_save :extract_dimensions
field :width, type: Integer
field :height, type: Integer
has_mongoid_attached_file :data
  def extract_dimensions
    return unless is_image?
    tempfile = data.queued_for_write[:original]
    unless tempfile.nil?
      geometry = Paperclip::Geometry.from_file(tempfile)
      self.width = geometry.width.to_i
      self.height = geometry.height.to_i
    end
    true # wont save if false 
  end
  def is_image?
    data_content_type =~ %r{^(image|(x-)?application)/(bmp|gif|jpeg|jpg|pjpeg|png|x-png)$}
  end
end