Attachment_Fu and Rails 2,1

In my application, I use mini_magick and I need to convert images to black and white and sepia tones. In Rails 1,2,3, this used to work:

  after_resize do |record,img|         logger.debug "img = #{img}"         logger.debug "record = #{record}"         logger.debug "self = #{self}"         logger.debug "record.thumbnail = #{record.thumbnail}"         if record.thumbnail.to_s.match(/.*_bw/)           img.combine_options do |i|             i.colors("256")             i.colorspace(:GRAY)             i.colorspace(:RGB)             i.quality 100           end         end

        if record.thumbnail.to_s.match(/.*sepia/)           img.combine_options do |i|             i.colors("256")             i.colorspace(:GRAY)             i.colorspace(:RGB)             i.fill "#cc9933"             i.colorize "30/30/30"             i.quality 100           end         end

  end

Now that I'm trying to use Rails 2.1, the log file says:

img = record = #<MiniMagick::Image:0x20e43ac> self = Photo

  SQL (0.000471) ROLLBACK ApplicationProcessor::on_error: MiniMagick::MiniMagickError rescued: ImageMagick command (mogrify -thumbnail "/var/folders/w2/w2+1jcd4Ge0d24HOVnPL2++++TI/-Tmp-/minimagick5822-1") failed: Error Given 256         /Library/Ruby/Gems/1.8/gems/mini_magick-1.2.3/lib/mini_magick.rb:124:in `run_command'         /Library/Ruby/Gems/1.8/gems/mini_magick-1.2.3/lib/mini_magick.rb:93:in `method_missing'         /Users/matt/Sites/checkout/app/models/photo.rb:28         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:177:in `call'         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:177:in `evaluate_method'         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:161:in `call'         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:93:in `run'         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:92:in `each'         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:92:in `send'         /Users/matt/Sites/checkout/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/callbacks.rb:92:in `run'         /Users/matt/Sites/checkout/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:451:in `run_callbacks'         /Users/matt/Sites/checkout/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:440:in `callback_with_args'         /Users/matt/Sites/checkout/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb:34:in `process_attachment'         /Users/matt/Sites/checkout/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb:21:in . . .

So, it seems that the callback is only getting one argument. And it's getting the mini_magick::Image in the place where it is supposed to get the record.

I've spent quite a bit of time looking at attachment_fu.rb around line 437 (callback_with_args) to try to figure out how this works, and I'm wondering if anybody else is having any success with attachment_fu and rails 2.1? Are you getting both parameters passed to your callback?

Thanks,

Matt

I just had this same problem with my app, in your before_thumbnail_saved method you no longer pass recrd and thumbnail, only thumbnail. Heres how mine looks now.

  before_thumbnail_saved do |thumbnail|     record = thumbnail.parent     thumbnail.user_id = record.user_id     thumbnail.parent_id = record.id

regards

before_thumbnail_saved now does only take one parameter.

But, the docs for after_resize still show that it is supposed to be able to take two parameters. Does the following very basic after_resize callback print good results for anybody? Below is one that will just output some information to the log file.

  after_resize do |record,img|         logger.debug "img = #{img}"         logger.debug "record = #{record}"         logger.debug "self = #{self}"         logger.debug "record.thumbnail = #{record.thumbnail}"   end

unknown wrote: