Files
fizzy/app/models/collection/publishable.rb
T
2025-11-05 13:31:54 +01:00

27 lines
491 B
Ruby

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