Доступ к модели изнутри загрузчика Carrierwave - PullRequest
4 голосов
/ 19 апреля 2011

Я пытаюсь реализовать ручную обрезку для веб-приложения, над которым я работаю, и у меня пока есть это:

  version :croppedversion do
    process :manualcrop => [model.crop_x, model.crop_y, model.crop_h, model.crop_w]
  end

  process :resize_to_limit => [600, 600]

  def manualcrop(x,y,h,w)
    manipulate! do |img|
      img = img.crop(x,y,h,w)
    end
  end

Проблема в том, что модель поднимается до нуля. Из документации, которую я прочитал, это будет правильный путь.

Есть предложения? Я переместил призыв к обрезке в функцию обратного вызова в модели на данный момент, но очень хотел бы, чтобы он находился внутри carrierwave

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Я очень старался, чтобы мой объект был нулевым в CarrierWave при попытке доступа к данным модели.

Для меня проблема была в моем контроллере. Похоже, это не слишком применимо к вашей ситуации, но я выполнил запрос, выполнив: model.user.foo - Если бы я сразу же назначил этого пользователя для модели после создания объекта, он бы получился нулевым,

0 голосов
/ 13 мая 2011

Я столкнулся с подобной проблемой. У меня было

attr_accessor: crop_x,: crop_y,: crop_w,: crop_h

но забыл включить их переменные обрезки в attr_accessible. Делая

attr_accessible: описание,: изображение,: crop_x,: crop_y,: crop_w,: crop_h

Мне удалось получить переменные обрезки модели. Я не знаю, решит ли это вашу проблему, потому что вы описываете модель, возвращающую ноль, а не методы обрезки.

...