Search code examples
jqueryruby-on-railsrubypaperclipjcrop

Rails3 Paperclip JCrop got into the loop


I have a typical setting of this configuration, nothing special, something like in this tutorial: http://shareyourtechskills.blogspot.com/2011/01/jcrop-with-paper-clip-plugin.html

Upload avatar - worked, but when i'm cropping it, proccess stuck in the loop with the following errors in console:

convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1cbz90w20121013-26133-1x1vcii20121013-26133-gjlod.png' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-fwu1jt.jpg' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-fwu1jt20121013-26133-1p255t220121013-26133-i8ny07.png' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-18wr3op.jpg' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-18wr3op20121013-26133-kp6o120121013-26133-1ut9jfy.png' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hjxk9x.jpg' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hjxk9x20121013-26133-rjrf8c20121013-26133-1eyrpxv.png' @ warning/transform.c/CropImage/572.
convert: GeometryDoesNotContainImage `/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-6h4lu.jpg' @ warning/transform.c/CropImage/572.

This strings count around 500, then i get this:

Started PUT "/users/1" for 127.0.0.1 at 2012-10-13 00:34:24 +0300
Processing by UsersController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"ht7YiTS5yOqXFy0EWeFVLBfv5eZU0codQfR8DvlKHA=", "user"=>{"crop_x"=>"223", "crop_y"=>"113", "crop_w"=>"145", "crop_h"=>"145"}, "commit"=>"Сохранить", "id"=>"1"}
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
  User Load (0.1ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", "1"]]
  CACHE (0.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1
   (0.0ms)  begin transaction
  User Exists (0.1ms)  SELECT 1 FROM "users" WHERE (LOWER("users"."email") = LOWER('example@example.com') AND "users"."id" != 1) LIMIT 1
Command :: identify -format %wx%h '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn.jpg[0]'
Command :: convert '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn.jpg[0]' -crop 145x145+223+113 -auto-orient -resize "145x" +repage '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v.png'
Command :: identify -format %wx%h '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v20121013-26133-m37pe.png[0]'
Command :: identify -format %m '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v20121013-26133-m37pe.png[0]'
Command :: identify -format %m '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v20121013-26133-m37pe.png[0]'
Command :: convert '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v20121013-26133-m37pe.png[0]' -crop 145x145+223+113 -auto-orient -resize "50x" +repage '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v20121013-26133-m37pe20121013-26133-nkvpon'
Command :: file -b --mime '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-10hxtsn20121013-26133-1hplq8v20121013-26133-m37pe20121013-26133-nkvpon'
  CACHE (0.0ms)  SELECT 1 FROM "users" WHERE (LOWER("users"."email") = LOWER('inc@gnezdom.com') AND "users"."id" != 1) LIMIT 1
Command :: identify -format %wx%h '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut940.jpg[0]'
Command :: convert '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut940.jpg[0]' -crop 145x145+223+113 -auto-orient -resize "145x" +repage '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh.png'
Command :: identify -format %wx%h '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh20121013-26133-69pm09.png[0]'
Command :: identify -format %m '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh20121013-26133-69pm09.png[0]'
Command :: identify -format %m '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh20121013-26133-69pm09.png[0]'
Command :: convert '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh20121013-26133-69pm09.png[0]' -crop 145x145+223+113 -auto-orient -resize "50x" +repage '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh20121013-26133-69pm0920121013-26133-2rw91z'
Command :: file -b --mime '/var/folders/4p/v_37jqkj6810y7wsd8b7ly100000gn/T/38361898520121013-26133-1hut94020121013-26133-1k0w0qh20121013-26133-69pm0920121013-26133-2rw91z'

also around 500 and then i get this error in the browser:

SystemStackError in UsersController#update
stack level too deep

I am interested why there is so many pictures, if I trimming only one? Thx


Solution

  • Most articles is outdate and not compatible with current version of paperclip and rails, so this configuration need some reorganize, as said in this comment http://railscasts.com/episodes/182-cropping-images?view=comments#comment_160006 Fona said, that

        avatar.reprocess!
    

    must call not from model but from a controller like this:

        @user.avatar.reprocess!
    

    ofcource, you need to validate it for presence cropping variables like crop_x and other P.S. Thx, Fona for your comment.