невозможно получить доступ к данным вложенного файла в before_destroy при использовании скрепки - PullRequest
0 голосов
/ 05 июля 2011

Я пытаюсь удалить несколько вещей, прежде чем произойдет фактическое удаление объекта.(Я использую скрепку) Поэтому я подумал, что before_destroy - мое решение.Я не хочу использовать зависимое уничтожение.(некоторые причины) У меня есть такая модель:

class Picture < ActiveRecord::Base
belongs_to :user
has_attached_file :image, :styles => {:d800x2400 =>"800x2400>",:d220x150=>"220x150#",:d118x118 => "118x118#",:d60x60=>"60x60#"}
before_destroy :remove_extras
after_save : add_extras

private 
def add_extras
logger.info " adding extras "
puts image.url(:d60x60)
end
def remove_extras
logger.info " Removing extras "
puts image.url(:d60x60)
end

Теперь вывод, который я получаю (при добавлении и удалении):

 adding extras 
/system/images/186/d60x60/something.png
deleting extras
/system/images/d60x60/missing.png

Может кто-нибудь сказать мне, почему яя не могу получить правильный URL?

1 Ответ

3 голосов
/ 16 февраля 2012

Возможно, у вас уже есть ответ на этот вопрос, но если вы этого не сделаете:

Проблема в том, что вам нужно, чтобы ваш "before_destroy" пришел ДО части "has_attached_file" ... В противном случае собственный "before_destroy" Paperclip будет вызван первым и уничтожит изображение до вызова вашего метода ...

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

...