2013-05-24 2 views
0

나는 몽타주를 만들 때 rmagick을 사용하고 있습니다. 내가 요청을 제출하면 내가 수동으로 다시 시작할 때까지, 그것은, 이상 무한 루프에 갇혀, 그리고 요청을 통해 동일한 이미지를 만들 계속하고, 도착 서버 :rmagick 이미지를 반복 생성하는 무한 루프에 갇혀

class LineItem < ActiveRecord::Base 
    has_many :images, as: :imageable, dependent: :destroy 
    after_save :process 

    private 

    def process 
    image_list = Magick::ImageList.new(*self.photos.split(',')) 
    montage = image_list.montage do 
     self.geometry = "182x182+6+6" 
     self.tile  = "4x3" 
    end 
    name = "#{self.id}_#{Time.now}.jpg" 
    montage.write(name) 
    images.build(source: File.open(name)) 
    save! 
    end 
왜 이런 일

모든 아이디어, 또는 방법 디버깅 하시겠습니까?

답변

2

귀하의 문제는 rmagick에 아니지만, 무한 재귀를 생성 process

save! 

내부에 다음

after_save :process 

인해

.

+0

아 물론! Duhhh ... 저장에서 콜백을 건너 뛰는 것 외에는 다른 옵션이 있습니까? – dee

+0

아마도'before_save : process'를 사용하고 나서 메서드 내에서'save!'를 사용할 필요가 없습니다. –

+0

사실 이것을 백그라운드 프로세스로 옮길 계획을 가지고 있지만, . – dee

관련 문제