トリミングのチュートリアルhttp://asciicasts.com/episodes/182-cropping-imagesに従いました。すべてが正常に機能し、画像は正常にアップロードされましたが、トリミングは機能していません。トリミングする特定の領域を選択してからトリミング ボタンをクリックすると、ペーパークリップがアバターをトリミングしてから削除します。このプロセスは、終わりのないループで繰り返されます。その結果、サーバーを強制的に停止して停止します。
私のコンソール出力:
Started POST "/users/change_img" for 127.0.0.1 at 2012-12-07 14:59:29 +0530
Processing by UsersController#change_img as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"k5fMemUGLIgbpIjiguRQKL9eiZ=",
"user"=>{"crop_x"=>"230", "crop_y"=>"0", "crop_w"=>"249", "crop_h"=>"249"},
"commit"=>"Crop"}
[1m[35mUser Load (0.4ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = 36 LIMIT 1
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
Command :: identify -format %wx%h '/tmp/freedomking20121207-23324-1y5h619.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1y5h619.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1y5h619.jpg[0]'
Command :: convert '/tmp/freedomking20121207-23324-1y5h619.jpg[0]' -crop 249x249+230+0 -auto-orient -resize "x100" +repage '/tmp/freedomking20121207-23324-1y5h61920121207-23324-xzdzn7'
Command :: file -b --mime '/tmp/freedomking20121207-23324-1y5h61920121207-23324-xzdzn7'
Command :: identify -format %wx%h '/tmp/freedomking20121207-23324-1y5h619.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1y5h619.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1y5h619.jpg[0]'
Command :: convert '/tmp/freedomking20121207-23324-1y5h619.jpg[0]' -crop 249x249+230+0 -auto-orient -resize "500x500>" '/tmp/freedomking20121207-23324-1y5h61920121207-23324-z3d34f'
Command :: file -b --mime '/tmp/freedomking20121207-23324-1y5h61920121207-23324-z3d34f'
[paperclip] deleting /home/saurabh/Workspaces/eclipse/img_cropper_ws/paperclip_cropper /public/system/avatars/36/original/freedomking.jpg
[paperclip] deleting /home/saurabh/Workspaces/eclipse/img_cropper_ws/paperclip_cropper/public/system/avatars/36/small/freedomking.jpg
[paperclip] deleting /home/saurabh/Workspaces/eclipse/img_cropper_ws/paperclip_cropper/public/system/avatars/36/large/freedomking.jpg
[1m[35m (0.7ms)[0m UPDATE "users" SET "avatar_updated_at" = '2012-12-07 09:29:29.286191', "updated_at" = '2012-12-07 09:29:29.639348' WHERE "users"."id" = 36
Command :: identify -format %wx%h '/tmp/freedomking20121207-23324-1nreivu.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1nreivu.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1nreivu.jpg[0]'
Command :: convert '/tmp/freedomking20121207-23324-1nreivu.jpg[0]' -crop 249x249+230+0 -auto-orient -resize "x100" +repage '/tmp/freedomking20121207-23324-1nreivu20121207-23324-1l0osan'
Command :: file -b --mime '/tmp/freedomking20121207-23324-1nreivu20121207-23324-1l0osan'
Command :: identify -format %wx%h '/tmp/freedomking20121207-23324-1nreivu.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1nreivu.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-1nreivu.jpg[0]'
Command :: convert '/tmp/freedomking20121207-23324-1nreivu.jpg[0]' -crop 249x249+230+0 -auto-orient -resize "500x500>" '/tmp/freedomking20121207-23324-1nreivu20121207-23324-1irzeiq'
Command :: file -b --mime '/tmp/freedomking20121207-23324-1nreivu20121207-23324-1irzeiq'
[paperclip] deleting /home/saurabh/Workspaces/eclipse/img_cropper_ws/paperclip_cropper/public/system/avatars/36/original/freedomking.jpg
[paperclip] deleting /home/saurabh/Workspaces/eclipse/img_cropper_ws/paperclip_cropper/public/system/avatars/36/small/freedomking.jpg
[paperclip] deleting /home/saurabh/Workspaces/eclipse/img_cropper_ws/paperclip_cropper/public/system/avatars/36/large/freedomking.jpg
[1m[36m (0.3ms)[0m [1mUPDATE "users" SET "avatar_updated_at" = '2012-12-07 09:29:29.648417', "updated_at" = '2012-12-07 09:29:29.639348' WHERE "users"."id" = 36[0m
Command :: identify -format %wx%h '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]'
Command :: convert '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]' -crop 249x249+230+0 -auto-orient -resize "x100" +repage '/tmp/freedomking20121207-23324-f9rq0q20121207-23324-1r94x6v'
Command :: file -b --mime '/tmp/freedomking20121207-23324-f9rq0q20121207-23324-1r94x6v'
Command :: identify -format %wx%h '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]'
Command :: identify -format %m '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]'
Command :: convert '/tmp/freedomking20121207-23324-f9rq0q.jpg[0]' -crop 249x249+230+0 -auto-orient -resize "500x500>" '/tmp/freedomking20121207-23324-f9rq0q20121207-23324-m0brtm'
Command :: file -b --mime '/tmp/freedomking20121207-23324-f9rq0q20121207-23324-m0brtm'
Update
ご覧のとおり、コンソールには終了しないクエリが繰り返し表示されます。
またmodule Paperclip
、チュートリアルで言及されていることが機能していないことに注意してください。機能するようにいくつかの変更を加えました。それは機能しましたが、この種の厄介な問題を引き起こしました。サーバーを強制終了して画像を確認すると、フォルダ内の画像が正常にトリミングされていることがわかります。しかし、その後もループで削除され、これが繰り返されます。
私の切り方
def change_img
@user = current_user
@user.update_attributes(params[:user])
flash[:notice] = "Successfully updated Image."
render :action => 'crop'
end
上記の方法ではupdate attribute
、コンソール出力に見られるように、クエリが問題を引き起こし、画像を更新してループで削除しています。
モジュールのクリップ プロセッサが原因のようです。しかし、理由はわかりません。
また
User
それはモデルのここに何かありますか-
クラス User < ActiveRecord::Base
has_attached_file :avatar, :path => ":rails_root/public/system/:attachment/:id/:style/:filename",
:url => "/system/:attachment/:id/:style/:filename",
:processors => [:cropper],
:styles => { :small => "100x100#", :large => "500x500>" }
after_update :reprocess_avatar, :if => :cropping?
def cropping?
!crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank?
end
def avatar_geometry(style = :original)
@geometry ||= {}
@geometry[style] ||= Paperclip::Geometry.from_file(avatar.path(style))
end
private
def reprocess_avatar
avatar.reprocess!
end
終わり