Sha256: 2be2307a99b2c43db773e1708be735bb56bea11d422863dddacf15aa1e0ce4f9

Contents?: true

Size: 827 Bytes

Versions: 4

Compression:

Stored size: 827 Bytes

Contents

module Cmor::Showcase
  class Item < ApplicationRecord
    include ActsAsPublished::ActiveRecord
    include Markup::Rails::ActiveRecord

    belongs_to :category

    has_many_attached :assets
    
    acts_as_list scope: :category
    acts_as_published
    acts_as_markup :body, Cmor::Core::Configuration.default_markup_options

    validates :name, presence: true, uniqueness: { scope: [ :category_id ] }

    module PreviewPictureConcern
      extend ActiveSupport::Concern

      def images
        assets.joins(:blob).where("active_storage_blobs.content_type LIKE '%image/%'")
      end

      def non_images
        assets.joins(:blob).where("active_storage_blobs.content_type NOT LIKE '%image/%'")
      end

      def preview_picture
        images.first
      end
    end

    include PreviewPictureConcern
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cmor_showcase-0.0.36.pre app/models/cmor/showcase/item.rb
cmor_showcase-0.0.35.pre app/models/cmor/showcase/item.rb
cmor_showcase-0.0.34.pre app/models/cmor/showcase/item.rb
cmor_showcase-0.0.33.pre app/models/cmor/showcase/item.rb