notebook/app/models/concerns/has_image_uploads.rb
2020-12-22 20:43:36 -08:00

28 lines
759 B
Ruby

require 'active_support/concern'
module HasImageUploads
extend ActiveSupport::Concern
included do
has_many :image_uploads, as: :content
# todo: dependent: :destroy
# todo: destroy from s3 on destroy
def public_image_uploads
self.image_uploads.where(privacy: 'public')
end
def private_image_uploads
self.image.uploads.where(privacy: 'private')
end
def random_image_including_private(format: :medium)
image_uploads.sample.try(:src, format).presence || "card-headers/#{self.class.name.downcase.pluralize}.jpg"
end
def random_public_image(format: :medium)
public_image_uploads.sample.try(:src, format).presence || "card-headers/#{self.class.name.downcase.pluralize}.jpg"
end
end
end