paperclip用lambda来动态定义 crop/resize 的图片大小

class Asset < ActiveRecord::Base
  attr_accessible :image, :deferred_image
  attr_writer :deferred_image

  has_attached_file :image,
    :styles => lambda { |a| a.instance.styles }

  belongs_to :project

  after_save :assign_deferred_image  def styles
    project.generators.each_with_object({}) { |g, hsh| hsh[g.sym] = "#{g.width}x#{g.height}" }
  end

  private  def assign_deferred_image    if @deferred_image
      self.image = @deferred_image
      @deferred_image = nil
      save!
    end
  end
end

你可能感兴趣的:(paperclip用lambda来动态定义 crop/resize 的图片大小)