Sha256: 5fb27e8debf1d386da1661f69e8123995cceae126d39461c735b421ba3db9dc9
Contents?: true
Size: 1.43 KB
Versions: 3
Compression:
Stored size: 1.43 KB
Contents
require 'active_support/concern' module KonoUtils::Concerns ## # Includendo questo modulo nell'application record, possiamo andare injettare metodi necessari per la gestione # dell'attributo virtuale per cancellare il file allegato # Usage: # # class Test < ApplicationRecord # # has_one_attached :doc # has_one_attached_remover :doc # # end # # Ricordarsi di aggiungere anche nella policy il nome del campo da ritornare dalla form, il nome dell'attributo # รจ kono_utils_purge_NOME_ATTRIBUTO # # # module ActiveStorageRemoverHelper extend ActiveSupport::Concern # # included do # # end module ClassMethods ## # Costruisce i metodi e attributi necessari al modello per gestire la rimozione attraverso l'interfaccia del # file allegato # @param [String,Symbol] field_name def has_one_attached_remover(field_name) attr = attribute_purger_name(field_name) callback = "make_#{attr}".to_sym attr_accessor attr after_save callback, if: attr define_method(callback) do if self.send(field_name.to_sym).attached? self.send(field_name.to_sym).purge_later end end end ## # Nome dell'attributo da generare # @param [String] field # @return [Symbol] def attribute_purger_name(field) "kono_utils_purge_#{field}".to_sym end end end end
Version data entries
3 entries across 3 versions & 1 rubygems