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

Есть идеи, почему это происходит, или как это отладить?

1 ответ

Решение

Ваша проблема не в rmagick, но из-за

after_save :process

затем внутри process

save!

который создает бесконечную рекурсию.

Другие вопросы по тегам