Files
fizzy/app/models/collection/publishable.rb
T
Jorge Manrubia 80c4e6fd92 Format
2025-06-10 11:19:13 +02:00

27 lines
511 B
Ruby

module Collection::Publishable
extend ActiveSupport::Concern
included do
has_one :publication, class_name: "Collection::Publication", dependent: :destroy
scope :published, -> { joins(:publication) }
end
class_methods do
def find_by_published_key(key)
Collection::Publication.find_by!(key: key).collection
end
end
def published?
publication.present?
end
def publish
create_publication! unless published?
end
def unpublish
publication&.destroy
end
end