Я не могу заставить этот фильтр before_save
работать. Мои методы довольно стандартны, я думаю. Изображения загружаются через Paperclip.
before_save :remove_checked_attachments
def attachments
%w(banner footer logo accreditation)
end
private
def remove_checked_attachments
attachments.each do |a|
if "remove_#{a}".to_sym && !"#{a}_updated_at_changed?".to_sym
"#{a}".to_sym.destroy
end
end
end
Параметры remove_...
передаются, но ничего не удаляется:
... "remove_banner"=>"1" ...
Есть предположения? Спасибо.
Обновить
Даже упрощение до этого не работает:
after_validation { banner.clear if remove_banner == '1' }
И "remove_banner"=>"1"
проходит через параметры. u.banner.clear
, затем u.banner.save
отлично работает в консоли.
destroy
#{a}
.to_sym - где хранятся эти данные? Это уже в БД или часть хэша параметров? - person Richard Peck   schedule 20.05.2014#{a}
представляет каждое приложение скрепки в модели. - person okay56k   schedule 21.05.2014