Sha256: 4b8942abdc2c4412ffc0a33b4f7a5c351f50f56cdb9a28bfc1dd90fd5bfec3ac
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true class Comfy::Cms::Fragment < ActiveRecord::Base self.table_name = "comfy_cms_fragments" has_many_attached :attachments serialize :content attr_reader :files # -- Callbacks --------------------------------------------------------------- # active_storage attachment behavior changed in rails 6 - see PR#892 for details if Rails::VERSION::MAJOR >= 6 before_save :remove_attachments, :add_attachments else after_save :remove_attachments, :add_attachments end # -- Relationships ----------------------------------------------------------- belongs_to :record, polymorphic: true, touch: true # -- Validations ------------------------------------------------------------- validates :identifier, presence: true, uniqueness: { scope: :record } # -- Instance Methods -------------------------------------------------------- # Temporary accessor for uploaded files. We can only attach to persisted # records so we are deffering it to the after_save callback. # Note: hijacking dirty tracking to force trigger callbacks later. def files=(files) @files = [files].flatten.compact content_will_change! if @files.present? end def file_ids_destroy=(ids) @file_ids_destroy = [ids].flatten.compact content_will_change! if @file_ids_destroy.present? end protected def remove_attachments return unless @file_ids_destroy.present? attachments.where(id: @file_ids_destroy).destroy_all end def add_attachments return if @files.blank? # If we're dealing with a single file if tag == "file" @files = [@files.first] attachments&.purge_later end attachments.attach(@files) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
comfortable_mexican_sofa-2.0.19 | app/models/comfy/cms/fragment.rb |