Sha256: f6fc45e6a3c8bd3580cdea652206da60f5538a3546ef761ae4b51646a9fc5a23
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
module Ecm::Galleries class PictureGallery < ApplicationRecord include ActsAsPublished::ActiveRecord has_many_attached :assets acts_as_published validates :name, presence: true, uniqueness: true module PictureDetails extend ActiveSupport::Concern included do has_many :picture_details, dependent: :destroy before_validation :cleanup_orphaned_picture_details before_validation :ensure_picture_details end def picture_details_count picture_details.count end private def cleanup_orphaned_picture_details picture_details.each do |picture_detail| picture_detail.destroy if picture_detail.asset.nil? end end def ensure_picture_details (assets - picture_details.all.map(&:asset)).map do |asset| build_picture_detail_for_asset(asset) end end def build_picture_detail_for_asset(asset) picture_details.build(asset: asset) end end include PictureDetails def human name end def assets_count assets.count end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ecm_galleries-0.0.3 | app/models/ecm/galleries/picture_gallery.rb |
ecm_galleries-0.0.2 | app/models/ecm/galleries/picture_gallery.rb |